Matlab-data-output

提供:Dev Guides
移動先:案内検索

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に相当する文字がファイルに書き込まれます。

たとえば、「hello」という単語をファイルに書き込みましょう-

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