永发信息网

matlab读取文件

答案:3  悬赏:40  手机版
解决时间 2021-03-28 10:36
matlab读取文件
最佳答案
一、纯数据文件(没有字母和中文,纯数字)
对于这种txt文档,从matalb中读取就简单多了
例如test.txt文件,内容为
17.901 -1.1111 33.045
17.891 -1.1286 33.045
17.884 -1.1345 33.045
可以在command window中输入load test.txt ,然后就会产生一个test的数据文件,内容跟test.txt中的数据一样;另一种方法是在file/import data....../next/finish 也可产生一个叫test的数据文件。
二、中英文和数据如test1.txt
你好
欢迎来到
论坛
edu.cn
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555

这样的文件怎么读入数据呢?
方法有多种,现举两个比较简单实用的。
方法一:
file/import data....../next/finish
>> whos
Name Size Bytes Class
data 5x4 160 double array
textdata 4x1 300 cell array
Grand total is 54 elements using 460 bytes
>> data
data =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
>> textdata
textdata =
'你好'
'欢迎来到'
'论坛'
'edu.cn'
方法二:
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
说明:%s可以是其他形式,跟读入的数据类型有关,比如这里也可以用%n,%f等。
这里%s的个数和[a1,a2,a3,a4]对应。
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)
a1 =
'1'
'2'
'3'
'4'
'5'
a2 =
'11'
'22'
'33'
'44'
'55'
a3 =
'111'
'222'
'333'
'444'
'555'
a4 =
'1111'
'2222'
'3333'
'4444'
'5555'
因以字符串的形式读入,所以有''。
————————————————————————————————
三、中文 数据 英文 混乱如test.txt
你好
1 11 111 1111
欢迎来到
2 22 222 2222
论坛
3 33 333 3333
edu.cn
4 44 444 4444
5 55 555 5555
说明:这种内容格式的文件用上面的方法是不行的。
以下是由chinamaker编写的一种方法:
fidin=fopen('test.txt'); % 打开test2.txt文件
fidout=fopen('mkmatlab.txt','w'); % 创建MKMATLAB.txt文件
while ~feof(fidin) % 判断是否为文件末尾
tline=fgetl(fidin); % 从文件读行
if double(tline(1))>=48&&double(tline(1))<=57 % 判断首字符是否是数值
fprintf(fidout,'%s\n\n',tline); % 如果是数字行,把此行数据写入文件MKMATLAB.txt
continue % 如果是非数字继续下一次循环
end
end
fclose(fidout);
MK=importdata('MKMATLAB.txt'); % 将生成的MKMATLAB.txt文件导入工作空间,变量名为MK,实际上它不显示出来
>> MK
MK =
1 11 111 1111
2 22 222 2222
3 33 333 3333
4 44 444 4444
5 55 555 5555
---------------------------------------------------------------
我的txt数据里既有数字又有字符串,形式为:
0.129515 DDAA 01 2.24609 94.50000 98
0.130434 DDAA 01 2.24609 96.30000 9A
0.131441 DDAA 01 2.24609 97.20000 9B
0.132448 DDAA 01 2.24609 99.00000 9D
0.133507 DDAA 01 2.24609 100.80000 9F
0.134515 DDAA 01 2.24609 101.70000 A0
............
我只想要第一列,第四列,第五列。
也就是0.129515 2.24609 94.50000 这3列数,
怎样导入matlab啊?

假设数据在data.txt里,且位于当面matlab路径里,用下面这句就可以了
[col1,col2,col3]=textread('data.txt','%f %*s %*d %f %f %*s',-1);
全部回答
D=dir('abc*');
for i=1:length(D)
if D(i).isdir==0 %不是文件夹
D(i).name%这个就是文件名了,剩下就是fopen,fclose或者load之类的函数
end
end
dirs=dir('c:\abc*'); % 替换成你想要的路径。读取某个目录的指定类型文件列表,返回结构数组。
dircell=struct2cell(dirs)' ; % 结构体(struct)转换成元胞类型(cell),转置一下是让文件名按列排列。
filenames=dircell(:,1) % 第一列是文件名
然后你的文件名都读出来了
你可以写一个循环
for i=1:length(filenames) % 根据文件的个数循环
filename=filenames(i); % 读入一个文件名
filename=filename{1}; % 文件名是cell类型,转换成string 类型
load filename % 读入数据
end
祝好运追问我实际想要的是这样的,有100个.hdf文件,里面的内容有好几个小数据包,我想要这个其中名字相同的数据包。dir出来是相同名字的文件吧?
比如,在A文件夹下面,有100个.hdf的文件,每个文件夹里都有像“NO2...”这样文件名的数据包,我想挑出来这些数据包,不能dir口令了吧?追答没太看明白,是说想找名为NO2....hdf的文件?那使用dir('No2*.hdf')就可以找到吧追问这样说吧,A文件夹里有两个文件:a.hdf和b.hdf,这两个文件中的数据存储是像excel一样,一个sheet一个sheet的存着的,我想要里面名字为“NO2*”的sheet里面的数据。dir是查找文件的吧,对于文件里面的sheet来说,找相同名字的口令不是这个吧?
不知道说清楚了么。。。先谢过啦~如果能解决,一定追加财富值~~~~追答明白你的意思了,没接触过.hdf文件,凑了一个很笨的办法,你试试,等高手来给规范的做法吧。
以matlab自带的example.hdf文件为例,不过这个文件里面只有一个dataset,更多dataset的情况下你自己检验下
s = hdfinfo('example.hdf'); % 读文件信息
Vsize=length(s.Vdata); % 取dataset个数做循环
DataSet=cell(1,100); % 用于储存读出的数据
filenames=cell(1:Vsize); % 储存dataset(sheet)的名字
icount=1; % 循环用,每读入一个sheet加1
for i=1:length(s.Vdata)
filenames(i)={s.Vdata.Name}; % 读sheet的名字
filename=filenames{i}; % 转换字符串
if(filename(1:2)=='Ex') % 如果名字存在某一个固定组合(这里是这个办法最笨的地方,我这里就找了sheet名字前两个字母为Ex作检验)
Datas = hdfread(s.Vdata); % 读数据
DataSet{icount}=Datas; % 储存到DataSet中
end
end
笨办法..看看能不能给你一点点启发
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天天向上补习班(乐山市中区)怎么去啊,我要去
商丘高铁站在哪个位置?
6米长的管子直径1米,如何计算需要用多少玻璃
红色号 2 7 8 12 19 29蓝号是10中过双色球一
为什么今年建筑行业招的新人少
香坊区哈尔滨建立社区居民委员会人民调解委员
球关于春天的古诗,经典文章片段,散文(50-1
已悉是什么意思
我做的纯的硅片的XRD,峰值在PCPDFWIN的图片
不锈钢管1毫米厚外径300毫米耐压多少mp
网线插进网孔里拔不出来怎么办
纳兰容若的诗
佳和心有什么成语
用六安家乡特产写一篇200字日记
滕州五里屯转盘焦化厂宿舍什么时候动工拆迁
推荐资讯
学校健美操社团退社申请书怎么写?
求bump of chicken的コロニー罗马音
日语所得斯烈说什么意思
只要心里坚定了的谁也不会动摇
李静这名字好吗
举例说明音列与音级的区别
行驶一万七千三保该做什么?
市区平均油耗14.2正常吗
劳累的累还念什么
SAT考到1500分能申请什么样的学校
桥梁下沉鉴定报告
看《失落的一角》读后感
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?