如何在matlab里用循环读取多个文本文档里的数据?

RT~~~ 我使用的是textscan 代码如下

for j=1:M;

for i=1:N;

fid=fopen([int2str(j) '-' int2str(i)],'r');

[A,B]=textscan(fid,'%d %d'); x1=[A,B];

set(handles.text1,'string',x1); fclose(fid);

end

end

但它总是显示

Error using ==> textscan

Invalid file identifier. Use fopen to generate a valid file identifier.

Error in ==> test>gather_Callback at 101 [A,B]=textscan(fid,'%d %d');

有什么解决方案吗?难道不能用textscan吗?求大大们指点。小弟先谢过了!!!!!!!!!!!!!!

办法是把这些文件的文件名按一定的规律命名,假如有一百个数据文件,则可以把这些文件分别命名为:filename1.txt,filename2.txt,fielname100.txt,在读取的时候则可以使用循环:
for i = 1:100
fileName = ['filename' num2str(i) '.txt'];
x = load(filiName);
end
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-24
提示Invalid file identifier. Use fopen to generate a valid file identifier.指出是前面fid=fopen([int2str(j) '-' int2str(i)],'r'); 出错了,你每次输出下[int2str(j) '-' int2str(i)]代表的文件名,然后到当前目录下看看有没有对应的文件。追问

是有的。[int2str(j) '-' int2str(i)]能出来1-1,1-2等。我怀疑是不是扩展名的问题

追答

必然啊,文件扩展名(如果有的话)肯定也要加到代码里面

追问

但是加进去就直接报错了

追答

什么错误信息?

追问

>> filename =[lp num2str(j) temp num2str(i) .txt]
??? Undefined variable "num2str" or class "num2str".

>> filename =[lp num2str(j) temp num2str(i) '.' txt]
??? Undefined function or variable 'txt'.

>> filename =[lp num2str(j) temp num2str(i) ]. txt
??? filename =[lp num2str(j) temp num2str(i) ]. txt
|
Error: Unexpected MATLAB operator.

追答

晕,应该这样写:
filename =['lp' num2str(j) 'temp' num2str(i) '.txt']

本回答被提问者采纳
第2个回答  2011-05-03
[A,B]=textscan(fid,'%d %d'); x1=[A,B];
不知道这个程序哪里错了 ,但是这里的x1=[A,B]; 有问题,失去了读不同数据的意义,一直是后面的数据覆盖前面的,追问

这个不是重点。

第3个回答  推荐于2017-11-24
提示Invalid file identifier. Use fopen to generate a valid file identifier.指出是前面fid=fopen([int2str(j) '-' int2str(i)],'r'); 出错了,你每次输出下[int2str(j) '-' int2str(i)]代表的文件名,然后到当前目录下看看有没有对应的文件。追问

是有的。[int2str(j) '-' int2str(i)]能出来1-1,1-2等。我怀疑是不是扩展名的问题

追答

必然啊,文件扩展名(如果有的话)肯定也要加到代码里面

追问

但是加进去就直接报错了

追答

什么错误信息?

追问

>> filename =[lp num2str(j) temp num2str(i) .txt]
??? Undefined variable "num2str" or class "num2str".

>> filename =[lp num2str(j) temp num2str(i) '.' txt]
??? Undefined function or variable 'txt'.

>> filename =[lp num2str(j) temp num2str(i) ]. txt
??? filename =[lp num2str(j) temp num2str(i) ]. txt
|
Error: Unexpected MATLAB operator.

追答

晕,应该这样写:
filename =['lp' num2str(j) 'temp' num2str(i) '.txt']

本回答被提问者采纳
第4个回答  2011-05-03
[A,B]=textscan(fid,'%d %d'); x1=[A,B];
不知道这个程序哪里错了 ,但是这里的x1=[A,B]; 有问题,失去了读不同数据的意义,一直是后面的数据覆盖前面的,追问

这个不是重点。

相似回答
大家正在搜