2017-10-12 260 views
1

我正在使用MATLAB R2017a,並且我想在運行腳本的文件夾中創建一個新的二進制文件。使用fopen在腳本文件夾中創建一個新文件

我正在以管理員身份運行matlab,否則它無權創建文件。以下內容返回合法的文件ID:

fileID = fopen('mat.bin','w'); 

但該文件在c:\ windows \ system32中創建。

然後我嘗試了以下創建我的腳本文件夾中的文件:

filePath=fullfile(mfilename('fullpath'), 'mat.bin'); 
fileID = fopen(filePath,'w'); 

,但我發現一個無效的fileid(等於-1)。

可變filepath是在運行時等於

'd:\收存箱\研究\ CurrentSemester \圖像處理\ Matlab的 Exercies \第一章\實例4 \ mat.bin'

這似乎對我有效。

我會很感激幫助搞清楚該怎麼做

回答

3

的問題是,mfilename返回包括文件名(不帶擴展名)的路徑。從文檔中,

p = mfilename('fullpath')返回發生調用的文件的完整路徑和名稱,不包括文件擴展名。

要僅保留文件夾的路徑,請使用fileparts,它的第一個輸出就是這樣。所以,在你的代碼中,你應該使用

filePath = fullfile(fileparts(mfilename('fullpath')), 'mat.bin'); 
相關問題