在用matlab做文件的循环处理中,每一个循环都需要创建打开一个txt文件,并且向其中存入矩阵数据。
但是在运行中,常常出现由于文件打开、关闭的原因引起中途报错,并且每一次暂停的地方都不一样,matlab错误提示为:
Invalid file identifier. Use fopen to generate a valid file identifier.
经过方法解决了这个问题,现程序运行稳定,主要解决方法如下:
1、正确的路径书写:
file_name=strcat(tline,'.txt');
filepath=fullfile('C:train',file_name);
2、用fopen打开文件后一定要及时用fclose保存:
fp=fopen(filepath,'wt');
%如果是txt文件,最好书写'wt'
st=fclose(fp);
如果还是报错的话:
!!!3、最重要的语句是,在打开或者关闭文件的时候,会回传一个参数,如果大于零表示正常打开或者关闭,如果不成功回传参数为-1。
在打开和关闭文件的语句后添加:
%如果打开文件错误,一直尝试直到成功
fp=fopen(filepath,'wt');
while fp ==-1
fp=fopen(filepath,'wt');
end
%如果关闭文件错误,一直尝试直到成功
st=fclose(fp);
while st==-1
st =fclose(fp);
end
以上方法应该能解决matlab循环中大批量打开关闭文件不稳定报错的问题。