MATLABのテキストファイルにいくつかの結果を出力することについて質問があります。本質的に私は50000ファイル(1から50000まで順番に番号が付けられている)からデータを読み込み、それをプロットしました。特定の条件を満たすファイルのみがプロットされます。私は今、データファイルにテキストを書くことができるいくつかのコードを追加したいと思います。書きたい特定のテキストは、特定の条件を満たす、プロットされたファイル番号(1〜50000)です。テキストファイルへの結果の書き込みに関するMATLABクエリ
これを試してみると、プロットは正常に機能しますが、テキストファイルには最後のファイル番号しか含まれていません。たとえば、プロットする条件を満たす最後のファイル番号が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
ありがとうございましたZellus - もう一度あなたにお世話になれますか?私はあなたのアドバイスを実装しました。私はコードを実行するときに '\ t'記号を入れていますが、すべてのファイル番号が一緒に結合されています。たとえば、ファイル26000〜26005のシミュレーションを実行すると、作成したテキストファイルは次のようになります:260002600126002260032600426005。別々の行に各ファイル番号を持つ方法はありますか? – mp7
@ mp7:fprintf(fid、 '%f \ n'、h(a))と似たようなものを試してみてください。あなたが実際にプロットハンドルをプロットしたい場合に備えて。 – zellus