2010-07-26 154 views
3

我用Matlab通過調用爲什麼fopen第一次失敗,但第二次工作?

fid = fopen(filename,'w') 

創建一個新的文件,因爲文件名不存在,它應該創建一個新的文件,並給我一個有效的文件描述符。相反,它返回-1。如果我再次運行代碼,我得到fid = 3.

這是在Ubuntu上運行,但它顯然在Windows上工作正常,我不明白爲什麼。

-Mike

+2

您是否嘗試過收到錯誤的消息,看看它告訴你什麼?你可以通過向調用添加另一個輸出參數來實現:'[fid,message] = fopen(filename,'w')'。 – gnovice 2010-07-26 15:01:29

回答

2

不知道這會有所幫助,但要注意的是,如果文件夾不存在,用的fopen「W」不能創建該文件,因此返回-1。

+0

我正在修復某人elses代碼,什麼命令創建文件夾? – msandbot 2010-07-26 15:00:46

+0

matlab有它自己的mkdir命令 – second 2010-07-26 15:07:42

0

您應該查看文檔here中的fopen的雙輸出參數格式。這可以讓你做類似的東西

[fh, failmessage] = fopen(fname, 'wt'); 
if fh == -1 
    error('Failed to open %s: %s', fname, failmessage); 
end 
相關問題