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

Matlab 使用fopen在脚本文件夹中创建新文件,matlab,fopen,Matlab,Fopen,我正在使用MatlabR2017A,我想在运行脚本的文件夹中创建一个新的二进制文件 我以管理员身份运行matlab,因为否则它没有创建文件的权限。下面返回一个合法的文件ID: fileID = fopen('mat.bin','w'); 但该文件是在c:\windows\system32中创建的 然后,我尝试在脚本所在的文件夹中创建以下文件: filePath=fullfile(mfilename('fullpath'), 'mat.bin'); fileID = fopen(filePath

我正在使用MatlabR2017A,我想在运行脚本的文件夹中创建一个新的二进制文件

我以管理员身份运行matlab,因为否则它没有创建文件的权限。下面返回一个合法的文件ID:

fileID = fopen('mat.bin','w');
但该文件是在c:\windows\system32中创建的

然后,我尝试在脚本所在的文件夹中创建以下文件:

filePath=fullfile(mfilename('fullpath'), 'mat.bin');
fileID = fopen(filePath,'w');
但是我得到了一个无效的fileId(等于-1)

变量filePath在运行时等于

'D:\Dropbox\Studies\CurrentSerm\ImageProcessing\Matlab 练习\Chapter1\Ex4\mat.bin'

这对我来说似乎是正确的

如果您能帮我弄清楚该怎么做,我将不胜感激。

问题是返回包含文件名(不带扩展名)的路径。根据文件

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

要仅保留文件夹的路径,请使用,其第一个输出正是该路径。因此,在代码中,应该使用

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