关于将结果写入文本文件的MATLAB查询

时间:2010-12-27 19:53:57

标签: matlab file-io

我有一个关于在MATLAB中将一些结果输出到文本文件的问题。基本上我已经从50000个文件中读取数据(按顺序从1到50000编号)并且我已经绘制了它。仅绘制满足特定条件的那些文件。我现在想添加一些代码,这些代码允许我将文本写入数据文件。我想写的具体文字是文件编号(从1到50000),它符合某些条件并已被绘制。

当我尝试这样做时,绘图工作正常,但文本文件只包含最后一个文件编号。例如,如果要满足要绘制的条件的最后一个文件编号是50000,那么文本文件只包含50000.我不确定如何更改代码 - 任何帮助/建议/提示将不胜感激。

start_sim=1;  
end_sim=50000;  
h = zeros (1,10000);  
for i=start_sim:end_sim  
a=int2str(i);  
File =strcat('result_', 'simulation', '_', a, 'I_byCal_totale.out');
est_tot=importdata(File, '\t', 1);
cal_tot=est_tot.data;
magnitude=1;
t1=cal_tot(:,1)+1750;
model=cal_tot(:,3)+cal_tot(:,5);
if (model(211)>=25)
if (model(211)<=150)
h(a)=plot(t1,model);
xlim([1910 1970]);
ylim([0 500]);
hold all
clickableLegend(h(a),a,'Location','BestOutside')

%Generate OutputFile
fid = fopen('Modeloutputs.in','w+'); 

%Generate some text to write in the file (e.g. the simulation number)
% Print the text in the file
fprintf(fid,h(a),'\t','\n');
%close the file
fclose(fid);

end

1 个答案:

答案 0 :(得分:1)

fid = fopen('Modeloutputs.in','a+'); 

应该做你的工作。您使用'w+'的初始尝试将

  

删除现有内容   文件或创建新文件,然后打开它   阅读和写作。

正如文件所说。另一种选择是移动fopen&amp;我希望在你的循环之外的fclose