Matlab从txt读入矩阵问题?

txt里格式如下:
[(34.5 14.5 10.5)
(35.5 15.5 10.5)
(25.5 5.5 11.5)
(26.5 5.5 11.5)]
希望读到Matlab里的矩阵变量里:
34.5 14.5 10.5
35.5 15.5 10.5
25.5 5.5 11.5
26.5 5.5 11.5

用load,textread或者importdata文本(txt)格式的文件,只能识别数据,对其中的文本无法读取。
可以使用fscanf或者sscanf的方式读取。
思路为:定义cell矩阵,先全部以字符的方式读入,再将其中的数字转换为数据格式。
代码如下:
m=8;n=3;
data=cell(m,n);%定义cell矩阵,存储文件内容
fid=fopen('test.txt','r');%以只读方式打开文件
for i=1:m
for j=1:n
data{i,j}=fscanf(fid,'%s',[1,1]);%以字符方式读取每个值,遇空格完成每个值的读取 end
end
fclose (fid);
for i=1:m
for j=2:n
data{i,j}=str2double(data{i,j});%将文本格式转为数字格式
end
end
str=cell(m,1);用于存储data的第一列
for i=1:m
str{i}=data{i,1};
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-07-06
34.5 14.5 10.5
35.5 15.5 10.5
25.5 5.5 11.5
26.5 5.5 11.5
上面的数间有空格,保存为a.txt
在窗口中输入uiimport a.txt即可追问

实际数据:
[(34.5 14.5 10.5)
(35.5 15.5 10.5)
。。。中间有几百行。。。
(25.5 5.5 11.5)
(26.5 5.5 11.5)]
而且我还要批量处理100+个这样的txt,
能用命令直接读入么?

追答

可以,实际数据间加空格,别的都去掉

本回答被提问者采纳
第2个回答  2013-04-29
利用load就可以啊;追问

给写个具体的命令。

相似回答