1. データがセル配列の場合
セル配列でデータを定義している場合、R2019a 以降のバージョンであれば、writecell 関数で文字列を含むデータをファイル出力することが可能です。
>> Vname = {'値1','値2'};
>> data = [{'太郎';'次郎'},num2cell(randperm(5,2).')];
>> C = [Vname;data]
C =
3×2 の cell 配列
{'値1' } {'値2'}
{'太郎'} {[ 5]}
{'次郎'} {[ 1]}
>> writecell(C,'mydata1.csv')
>> type mydata1.csv
値1,値2
太郎,5
次郎,1
R2018b 以前の場合は、fopen / fprintf / fclose などを使用する方法をご検討ください。
詳細は、以下の URL をご覧ください。
2. データがテーブル型の場合
テーブル型でデータを定義している場合は、writetable 関数(R2013b 以降)を使用することが可能です。 なお、R2019b 以降のバージョンであれば、テーブル型において下記のように 非ASCII の変数名を定義することができ、writetable 関数でもそのまま日本語を列ヘッダとして出力可能です。
>> Vname = {'値1','値2'};
>> T = table({'太郎';'次郎'}, randperm(5,2).','VariableNames',Vname);
>> T
T =
2×2 table
値1 値2
________ ___
{'太郎'} 4
{'次郎'} 3
>> writetable(T,'mydata.csv')
>> type('mydata.csv')
値1,値2
太郎,4
次郎,3
関連する情報が以下の URL よりご覧いただけます。
・テキスト ファイルへの table のエクスポート
なお、文字列を出力したファイルに、数値データを追記したい場合には、DLMWRITE 関数を’’-append' オプションとともに使用します。
data = rand(5,3);
dlmwrite('data1.csv',data,'-append') % 数値データの追加