我有一个关于在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
答案 0 :(得分:1)
fid = fopen('Modeloutputs.in','a+');
应该做你的工作。您使用'w+'
的初始尝试将
删除现有内容 文件或创建新文件,然后打开它 阅读和写作。
正如文件所说。另一种选择是移动fopen
&amp;我希望在你的循环之外的fclose
。