文字列を含めて、CSVファイルを作成することができますか?
162 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 9 Juil 2010
Modifié(e) : MathWorks Support Team
le 22 Juin 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
となります。
Réponse acceptée
MathWorks Support Team
le 22 Juin 2020
Modifié(e) : MathWorks Support Team
le 22 Juin 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 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur テキスト ファイル dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!