2017-03-15 4 views
0

Matlabのcsvファイルにセルアレーを書き出しようとしています。データ{1、:}はヘッダと等しく、データ{2、:}はデータ(2×23)を有する。 セル配列内のデータには、文字列と数値が混在しています。 配列内のセルの1つに非常に長い文字列/コメントがあり、それをcsvに書き出すと、文字列が複数に分割され、csvファイルの3つのセルに出力されます。これにより、他のすべての情報が、関連付けられたヘッダーと同期しなくなります。 これは私が現在しようとしているものです:文字列のセル配列の構造を維持しながら、Matlabのcsvにセル配列を書き込む方法

fid = fopen('test.csv', 'w') ; 
fprintf(fid, '%s,\t', csvdata{1,1:end}) ; 
fprintf(fid,'\n,%f, %f, %f,%f, %f, %s,%s, %f, %f,%s, %f, %s,%s, %f, %s,%s, %s, %s,%s, %s,%s,%s,%s',csvdata{2,:}); 
fclose all 

答えて

2

あなたはそれが

fprintf(fid,'\n,%f, %f, %f,%f, %f, "%s","%s", %f, %f,"%s", %f, "%s","%s", %f, "%s","%s", "%s", "%s","%s", "%s","%s","%s","%s"',csvdata{2,:}); 
+0

デリミタむしろ、文字列内のカンマがリテラルコンマとして扱われることを保証するために、二重引用符(")を使用して文字列を囲む必要がありますうわー!とても簡単。どのように私はそれを知りませんでした!面白いのは、これらの二重引用符をすべての%sセルに入れ、それらのうちのいくつかが空の場合、それらは引用符をcsvファイルに書き出すということです。 – new2matlab

+0

@ new2matlabはいこれは予想される動作です。 '' ''はあなたの文字列に挿入されるリテラル引用符です。 – Suever

関連する問題