MATLAB - データ出力
MATLAB でのデータのエクスポート (または出力) は、ファイルに書き込むことを意味します。 MATLAB では、ASCII ファイルを読み取る別のアプリケーションでデータを使用できます。このために、MATLAB にはいくつかのデータ エクスポート オプションが用意されています。
次のタイプのファイルを作成できます −
- <リ>
配列からの長方形の区切られた ASCII データ ファイル。
<リ>キーストロークとその結果のテキスト出力のダイアリー (またはログ) ファイル。
<リ>fprintf などの低レベル関数を使用する特殊な ASCII ファイル。
<リ>特定のテキスト ファイル形式に書き込む C/C++ または Fortran ルーチンにアクセスするための MEX ファイル。
これとは別に、データをスプレッドシートにエクスポートすることもできます。
数値配列を区切られた ASCII データ ファイルとしてエクスポートするには、2 つの方法があります −
- <リ>
保存の使用 関数と -ascii の指定 修飾子
<リ>dlmwrite の使用 関数
保存機能を使用するための構文は −
save my_data.out num_array -ascii
ここで、my_data.out num_array は、作成された区切られた ASCII データ ファイルです。 は数値配列で、−ascii は指定子です。
dlmwrite を使用するための構文 関数は-
dlmwrite('my_data.out', num_array, 'dlm_char')
ここで、my_data.out num_array は、作成された区切られた ASCII データ ファイルです。 は数値配列で、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 関数を使用して cell 配列をエクスポートします。
保存を使用する場合 関数を使用して文字配列を 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
MATLAB