Matlab文件批量处理,报错:Invalid file identifier. Use fopen to generate a valid file identifier.解决方案

在用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循环中大批量打开关闭文件不稳定报错的问题。

发布了37 篇原创文章 · 获赞 64 · 访问量 22万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章