在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);
答案 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)