テキスト ファイルへのデータの書き込み
table、cell 配列、または数値配列に含まれる表形式データを、MATLAB® ワークスペースからテキスト ファイルにエクスポートします。
テキスト ファイルへの table のエクスポート
関数 writetable
を使用することで、MATLAB® ワークスペースから表形式データをテキスト ファイルにエクスポートできます。サンプル table を作成し、table をテキスト ファイルに書き込んだうえで、追加オプションを指定して table をテキスト ファイルに書き込みます。
変数 Pitch
、Shape
、Price
、および 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 T
を tabledata.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
T2
を tabledata2.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
参考
writematrix
| writecell
| writetimetable
| fprintf
| type
| writetable