Main Content

テキスト ファイルへのデータの書き込み

table、cell 配列、または数値配列に含まれる表形式データを、MATLAB® ワークスペースからテキスト ファイルにエクスポートします。

テキスト ファイルへの table のエクスポート

関数 writetable を使用することで、MATLAB® ワークスペースから表形式データをテキスト ファイルにエクスポートできます。サンプル table を作成し、table をテキスト ファイルに書き込んだうえで、追加オプションを指定して table をテキスト ファイルに書き込みます。

変数 PitchShapePrice、および Stock を含んだサンプル table T を作成します。

Pitch = [0.7;0.8;1;1.25;1.5];
Shape = {'Pan';'Round';'Button';'Pan';'Round'};
Price = [10.0;13.59;10.50;12.00;16.69];
Stock = [376;502;465;1091;562];
T = table(Pitch,Shape,Price,Stock)
T=5×4 table
    Pitch      Shape       Price    Stock
    _____    __________    _____    _____

     0.7     {'Pan'   }       10     376 
     0.8     {'Round' }    13.59     502 
       1     {'Button'}     10.5     465 
    1.25     {'Pan'   }       12    1091 
     1.5     {'Round' }    16.69     562 

table Ttabledata.txt という名前のテキスト ファイルにエクスポートします。ファイルの内容を表示します。既定では、writetable はコンマ区切りデータを書き込み、table 変数の名前を列見出しとして含めます。

writetable(T,'tabledata.txt');
type tabledata.txt
Pitch,Shape,Price,Stock
0.7,Pan,10,376
0.8,Round,13.59,502
1,Button,10.5,465
1.25,Pan,12,1091
1.5,Round,16.69,562

名前と値のペアの引数 RowNames を使用して、行名を含む table T2 を作成します。

rowNames = {'M4';'M5';'M6';'M8';'M10'};
T2 = table(Pitch,Shape,Price,Stock,'RowNames',rowNames)
T2=5×4 table
           Pitch      Shape       Price    Stock
           _____    __________    _____    _____

    M4      0.7     {'Pan'   }       10     376 
    M5      0.8     {'Round' }    13.59     502 
    M6        1     {'Button'}     10.5     465 
    M8     1.25     {'Pan'   }       12    1091 
    M10     1.5     {'Round' }    16.69     562 

T2tabledata2.txt という名前のタブ区切りテキスト ファイルにエクスポートします。名前と値のペアの引数 Delimiter を使用してタブ区切り記号を指定し、名前と値のペアの引数 WriteRowNames を使用して行名を含めます。ファイルの内容を表示します。

writetable(T2,'tabledata2.txt','Delimiter','\t','WriteRowNames',true);
type tabledata2.txt
Row	Pitch	Shape	Price	Stock
M4	0.7	Pan	10	376
M5	0.8	Round	13.59	502
M6	1	Button	10.5	465
M8	1.25	Pan	12	1091
M10	1.5	Round	16.69	562

テキスト ファイルへの cell 配列のエクスポート

次のいずれかの方法で、MATLAB® ワークスペースからテキスト ファイルに cell 配列をエクスポートできます。

  • 関数 writecell を使用して cell 配列をテキスト ファイルにエクスポート。

  • fprintf を使用し、出力データの形式を指定して cell 配列をエクスポート。

サンプルの cell 配列 C を作成します。

C = {'Atkins',32,77.3,'M';'Cheng',30,99.8,'F';'Lam',31,80.2,'M'}
C = 3×4 cell array
    {'Atkins'}    {[32]}    {[77.3000]}    {'M'}
    {'Cheng' }    {[30]}    {[99.8000]}    {'F'}
    {'Lam'   }    {[31]}    {[80.2000]}    {'M'}

writecell を使用して cell 配列をエクスポートします。

writecell(C,'data.dat')

ファイルの内容を表示します。

type data.dat
Atkins,32,77.3,M
Cheng,30,99.8,F
Lam,31,80.2,M

あるいは、fprintf を使用して cell 配列をインポートします。celldata.dat という名前の書き込み可能なファイルを開きます。書式指定子を使用して formatSpec を定義し、ファイル内のデータのパターンを記述します。標準的な書式指定子には、文字ベクトルの '%s'、整数の '%d'、浮動小数点数の '%f' などがあります。個々の書式指定子をスペースで区切って、出力ファイルにスペース区切り記号を指定します。各データ行の終端に改行文字 ('\n') を挿入します。

fileID = fopen('celldata.dat','w');
formatSpec = '%s %d %2.1f %s\n';

C のサイズを決定し、関数 fprintf を使用して、一度に 1 行ずつデータをエクスポートします。その後、ファイルを閉じます。fprintf がスペース区切りファイルを書き込みます。

[nrows,ncols] = size(C);
for row = 1:nrows
    fprintf(fileID,formatSpec,C{row,:});
end
fclose(fileID);

ファイルの内容を表示します。

type celldata.dat
Atkins 32 77.3 M
Cheng 30 99.8 F
Lam 31 80.2 M

数値配列をテキスト ファイルにエクスポート

writematrix を使用して、数値配列をテキスト ファイルにエクスポートできます。

数値配列 A を作成します。

A = magic(5)/10 
A = 5×5

    1.7000    2.4000    0.1000    0.8000    1.5000
    2.3000    0.5000    0.7000    1.4000    1.6000
    0.4000    0.6000    1.3000    2.0000    2.2000
    1.0000    1.2000    1.9000    2.1000    0.3000
    1.1000    1.8000    2.5000    0.2000    0.9000

数値配列を myData.dat に書き込み、区切り記号を ';' に指定します。続いて、ファイルの内容を表示します。

writematrix(A,'myData.dat','Delimiter',';')  
type myData.dat
1.7;2.4;0.1;0.8;1.5
2.3;0.5;0.7;1.4;1.6
0.4;0.6;1.3;2;2.2
1;1.2;1.9;2.1;0.3
1.1;1.8;2.5;0.2;0.9

参考

| | | | |