文字列を含めて、CSVファイルを作成することができますか?
195 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
MathWorks Support Team
am 9 Jul. 2010
Bearbeitet: MathWorks Support Team
am 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
となります。
Akzeptierte Antwort
MathWorks Support Team
am 22 Jun. 2020
Bearbeitet: MathWorks Support Team
am 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 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu テキスト ファイル finden Sie in Help Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!