文字列を含めて、CSVファイルを作成することができますか?
172 views (last 30 days)
Show older comments
MathWorks Support Team
on 9 Jul 2010
Edited: MathWorks Support Team
on 22 Jun 2020
CSVWRITEを使って文字列を含めたCSVファイルを作成していますが、文字列が、一文字づつのカンマ区切りで出力されます。文字列を文字列として、CSVファイルとしてエクスポートする方法を教えてください。
str = {'time','signal1','signal2'}; % 文字列(セル配列)
csvwrite('data1.csv',str) % CSVファイル作成
data1.csvは
t,i,m,e,s,i,g,n,a,l,1,s,i,g,n,a,l,2
となります。
Accepted Answer
MathWorks Support Team
on 22 Jun 2020
Edited: MathWorks Support Team
on 22 Jun 2020
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') % 数値データの追加
0 Comments
More Answers (0)
See Also
Categories
Find more on テキスト ファイル in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!