如何在保持字符串元胞数组结构的同时在 Matlab 中将元胞数组写入 csv

How to write a cell array to csv in Matlab while keeping the structure of the cell array for the strings

我正在尝试在 Matlab 中将单元阵列写入 csv 文件。 data{1,:} 等于 headers 并且 data{2,:} 具有数据 (2x23)。 元胞数组中的数据混合了字符串和数字。 数组中的一个单元格有一个很长的 string/comment ,当我尝试将它写出到 csv 时,该字符串被分成许多部分并打印出 csv 文件中的 3 个单元格。这会使所有其他信息与其关联的 header 不同步。 这就是我目前正在尝试的:

 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

您应该用双引号 (") 将字符串括起来,以确保将字符串中的逗号视为文字逗号而不是定界符

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,:});