在Matlab中将数字矩阵和单元数据保存到CSV文件

时间:2015-04-23 23:58:51

标签: matlab csv file-io matlab-guide

在Matlab中我有一个100X4000垫,其中包含双打,我有一个100X1的单元格。现在的问题是如何在CSV文件中一起编写所有内容。 Matlab不允许我这样做。一个较短的例子是这样的:第一个垫子

0   1   2
0   0   0
0   5   3
9   0   7
0   4   0

第二个细胞:

apple
banana
cherry
peach
other

预期结果(A)是:

0   1   2 apple
0   0   0 banana
0   5   3 cherry
9   0   7 peach
0   4   0 other

最终目标是:

csvwrite('dataLabels.csv',A);

2 个答案:

答案 0 :(得分:1)

代码简单如下:

% Toy Example Data
B = [0 1 2; 0 0 0; 0 5 3; 9 0 7; 0 4 0];
C = { 'apple' 'banana' 'cherry' 'peach' 'other' }';

B = num2str(B,'%i   %i   %i');
dlmwrite( 'dataLabels.csv', [B repmat( char(' '), length(C), 1 ) char( C{:} )], '' );

所以你要做的就是将你的矩阵B改成一个具有所需间距的字符。这就是num2str函数对这些参数的作用。然后,您可以使用dlmwrite来分隔,没有间距。代码char( C{:} )只是将单元格转换为char。

代码repmat( char(' '), length(C), 1 )只是在矩阵B和char单元格C之间放置一个空格。 结果

0   1   2 apple 
0   0   0 banana
0   5   3 cherry
9   0   7 peach 
0   4   0 other 

答案 1 :(得分:0)

您可以使用if (index < 0) index = initial % skip; fopen(filepath, w)在csv文件中将多个矩阵写为字符串。

示例:

fprintf(fileId, data)

fopenfprintf