我想在某个特定文件夹中的不同文件中定期编写代码输出。 我使用的代码如下:
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.
。代码有什么问题?任何帮助将不胜感激。
答案 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'];