次の形式で複数の配列をテキストファイルに保存する必要があります。
n = 2%配列の数
r = 3%最初の配列の行数
1 2 3%実際のデータ
4 5 6
7 8 9
r = 3%2番目の配列の行数
5 6 7%実際のデータ
1 2 3
7 8 9
手伝ってくれませんか
fprintfを使用します。配列を反復処理できるように、配列がセル配列に格納されている場合。
arrays = cell(N, 1); %A cell array of arrays
f = fopen('output.txt', 'w');
fprintf(f, 'n=%i\n', N);
for i=1:N
rows = size(arrays{i}, 1);
fprintf(f, '\nr=%i\n', rows);
for j=1:rows
fprintf(f, '%g ', arrays{i}(N, :));
fprintf(f, '\n');
end
end
fclose(f);
これまでに何をしましたか?
原則として、この種のことについては、データをファイルに出力する関数fprintfと、関数に可変長の引数リストを提供できるようにするvararginが友達です。したがって、この種のタスクを処理する関数の適切なシグネチャは次のようになります。
function [output_args] = pretty_save_to_file(fName, varargin)
これfName
は、データを保存するファイルの名前であり、保存するvarargin
行列の名前のプレースホルダーです。関数の面倒な詳細を入力したら、次のようなものを使用して呼び出すことができるはずです
pretty_save_to_file('output.txt', A, B, C) % prints matrices A, B, and C to output.txt
さらに、各マトリックスの行数を決定しようとしているので、サイズ関数を含む次のスニペットが役立つことがわかるでしょう。
[nrows, ncols] = size(A); % Stores the number of rows and columns of A in nrows, ncols
最後に、関数 fprintf を使用すると、行列の目的の書式を指定できます。