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