0

我想在某个特定文件夹的不同文件中定期编写代码输出。我正在使用的代码如下:

for i=1:m
% some other things
     if (mod(i,1000)==0)
      y=[1:dx:n_x;c_initial.'];
      fn = ['/home/alekhine' num2str(i) '.dat'];
     fid=fopen(fn);
      fprintf(fid,'%6.4f  %12.8f\n',y);

      fclose(fid);
      end
end

但我从 Matlab 收到如下错误

Error using ==> fprintf
Invalid file identifier.  Use fopen to generate a valid file
identifier.

. 代码有什么问题?任何帮助将不胜感激。

4

3 回答 3

2

您没有将permission参数提供给 fopen 函数,因此它仅以只读方式打开。

有关. _ _permission

于 2012-09-02T21:00:33.293 回答
2

仅供参考,构造文件名的首选方法是使用FULLFILE。在这种情况下,你可以做

fn = fullfile('/home/alekhine', [num2str(i), '.dat']);

FULLFILE 是首选,因为它理解不同操作系统类型(即\Windows 和/UNIX/Mac)上的不同文件分隔符。

于 2012-09-03T07:13:30.337 回答
1

您似乎在路径生成中缺少路径分隔符:

fn = ['/home/alekhine' num2str(i) '.dat'];

应该:

fn = ['/home/alekhine/' num2str(i) '.dat'];
于 2012-09-02T21:26:03.230 回答