MATLAB-データ出力
MATLABでのデータのエクスポート(または出力)とは、ファイルに書き込むことを意味します。MATLABを使用すると、ASCIIファイルを読み取る別のアプリケーションでデータを使用できます。このために、MATLABはいくつかのデータエクスポートオプションを提供します。
次の種類のファイルを作成できます-
配列からの長方形の区切られたASCIIデータファイル。
キーストロークと結果のテキスト出力の日記(またはログ)ファイル。
fprintfなどの低レベル関数を使用した特殊なASCIIファイル。
特定のテキストファイル形式に書き込むC / C ++またはFortranルーチンにアクセスするためのMEXファイル。
これとは別に、データをスプレッドシートにエクスポートすることもできます。
数値配列を区切られたASCIIデータファイルとしてエクスポートする方法は2つあります-
を使用して save 関数と指定 -ascii 修飾子
を使用して dlmwrite 関数
保存機能を使用するための構文は次のとおりです。
save my_data.out num_array -ascii
ここで、my_data.outは作成された区切りASCIIデータファイル、num_arrayは数値配列、 −ascii 指定子です。
を使用するための構文 dlmwrite 関数は−
dlmwrite('my_data.out', num_array, 'dlm_char')
ここで、my_data.outは作成された区切り文字のASCIIデータファイル、num_arrayは数値配列、 dlm_charは区切り文字です。
例
次の例は、概念を示しています。スクリプトファイルを作成し、次のコードを入力します-
num_array = [ 1 2 3 4 ; 4 5 6 7; 7 8 9 0];
save array_data1.out num_array -ascii;
type array_data1.out
dlmwrite('array_data2.out', num_array, ' ');
type array_data2.out
ファイルを実行すると、次の結果が表示されます-
1.0000000e+00 2.0000000e+00 3.0000000e+00 4.0000000e+00
4.0000000e+00 5.0000000e+00 6.0000000e+00 7.0000000e+00
7.0000000e+00 8.0000000e+00 9.0000000e+00 0.0000000e+00
1 2 3 4
4 5 6 7
7 8 9 0
save -asciiコマンドとdlmwrite関数は、入力としてのセル配列では機能しないことに注意してください。セル配列の内容から区切られたASCIIファイルを作成するには、次のことができます。
いずれかを使用して、セル配列を行列に変換します。 cell2mat 関数
または、低レベルのファイルI / O関数を使用してセル配列をエクスポートします。
あなたが使用する場合 save 文字配列をASCIIファイルに書き込む関数。文字に相当するASCIIをファイルに書き込みます。
たとえば、「こんにちは」という単語をファイルに書き込んでみましょう。
h = 'hello';
save textdata.out h -ascii
type textdata.out
MATLABは上記のステートメントを実行し、次の結果を表示します。これは、8桁のASCII形式の文字列「hello」の文字です。
1.0400000e+02 1.0100000e+02 1.0800000e+02 1.0800000e+02 1.1100000e+02
日記ファイルへの書き込み
日記ファイルは、MATLABセッションのアクティビティログです。日記関数は、グラフィックを除いて、セッションの正確なコピーをディスクファイルに作成します。
日記機能をオンにするには、「-」と入力します。
diary
オプションで、ログファイルの名前を指定できます。
diary logdata.out
日記機能をオフにするには−
diary off
日記ファイルはテキストエディタで開くことができます。
低レベルI / Oを使用したテキストデータファイルへのデータのエクスポート
これまで、数値配列をエクスポートしてきました。ただし、数値データと文字データの組み合わせ、非長方形の出力ファイル、または非ASCIIエンコードスキームのファイルなど、他のテキストファイルを作成する必要がある場合があります。これらの目的のために、MATLABは低レベルを提供しますfprintf 関数。
低レベルのI / Oファイルアクティビティと同様に、エクスポートする前に、ファイルを開くか作成する必要があります。 fopen関数を実行し、ファイル識別子を取得します。デフォルトでは、fopenは読み取り専用アクセス用にファイルを開きます。'w'や 'a'など、書き込みまたは追加する権限を指定する必要があります。
ファイルを処理した後、でファイルを閉じる必要があります fclose(fid) 関数。
次の例は、概念を示しています-
例
スクリプトファイルを作成し、その中に次のコードを入力します-
% create a matrix y, with two rows
x = 0:10:100;
y = [x; log(x)];
% open a file for writing
fid = fopen('logtable.txt', 'w');
% Table Header
fprintf(fid, 'Log Function\n\n');
% print values in column order
% two values appear on each row of the file
fprintf(fid, '%f %f\n', y);
fclose(fid);
% display the file created
type logtable.txt
ファイルを実行すると、次の結果が表示されます-
Log Function
0.000000 -Inf
10.000000 2.302585
20.000000 2.995732
30.000000 3.401197
40.000000 3.688879
50.000000 3.912023
60.000000 4.094345
70.000000 4.248495
80.000000 4.382027
90.000000 4.499810
100.000000 4.605170