使用fopen在脚本文件夹中创建一个新文件

问题描述:

我正在使用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'

这似乎对我有效。

我会很感激帮助搞清楚该怎么做

的问题是,mfilename返回包括文件名(不带扩展名)的路径。从文档中,

p = mfilename('fullpath')返回发生调用的文件的完整路径和名称,不包括文件扩展名。

要仅保留文件夹的路径,请使用fileparts,它的第一个输出就是这样。所以,在你的代码中,你应该使用

filePath = fullfile(fileparts(mfilename('fullpath')), 'mat.bin');