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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章