Matlab从txt读入矩阵问题?
txt里格式如下:[(34.514.510.5)(35.515.510.5)(25.55.511.5)(26.55.511.5)]希望读到Matlab里的矩阵变量里:34...
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 展开
[(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 展开
3个回答
展开全部
用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
可以使用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
展开全部
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即可
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,
能用命令直接读入么?
追答
可以,实际数据间加空格,别的都去掉
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
利用load就可以啊;
追问
给写个具体的命令。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询