编写多个输出文件matlab

时间:2012-09-02 20:49:26

标签: matlab file-io

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

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.

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

3 个答案:

答案 0 :(得分:2)

你没有给fopen函数赋予permission参数,所以它只是为了只读而打开。

请参阅文档(http://www.mathworks.com/help/techdoc/ref/fopen.html)了解permission的有效值。

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:1)

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

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

应该是:

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