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

来源:互联网 发布:2009中超数据库 编辑:程序博客网 时间:2024/06/03 21:24

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

阅读全文
1 0