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

时间:2017-10-12 19:11:45

标签: matlab fopen

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

我正在以管理员身份运行matlab,否则它无权创建文件。以下内容返回合法的fileID:

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'

这似乎对我有用。

我很感激帮助找出要做的事情

1 个答案:

答案 0 :(得分:3)

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

  

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

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

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