ループ、計算したデータを一個一個にtxt書き出す

forループで計算したdataを一列一列ごとにtxtに書き込みたいですが、 どうすれば、良いでしょうか?

1 Commento

Akira Agata
Akira Agata il 24 Nov 2017
念のため確認なのですが、「一行一行ごと」ではなく、「一列一列ごと」でしょうか?

Accedi per commentare.

 Risposta accettata

Akira Agata
Akira Agata il 24 Nov 2017
Modificato: Akira Agata il 24 Nov 2017

3 voti

できれば、forループで計算したデータすべてを保存できるだけの配列をあらかじめ用意しておいて、forループが完了した後、一括でまとめてファイル出力をすることをお勧めします。
もしどうしても1列ごとに出力する必要がある場合、 dlmwrite 関数を使ってforループごとにファイルを上書き保存することで、1列ごとにテキストファイルに書き込むのと実質的に同じ結果を得ることができます。
たとえば以下のサンプルコードでは、forループが回るごとにダイアログボックスを表示して、「はい」ボタンが押されるたびに計算結果(列データ)をテキストファイルに書き込みます。
% データ配列の事前割り当て
A = zeros(10);
for kk = 1:10
% forループで計算したデータを列に保存
A(:,kk) = rand(10,1);
% ダイアログボックスを表示
choice = questdlg('ファイル記入を続けますか?');
% 'Yes' が押されるたびに 1~kk 列までのデータを保存
if strcmp(choice,'Yes')
dlmwrite('myFile.txt',A(:,1:kk),'delimiter',',');
else
break;
end
end

Più risposte (1)

nei kou
nei kou il 24 Nov 2017

0 voti

はい。一列一列ごとに

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!