在用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循環中大批量打開關閉文件不穩定報錯的問題。