MATLAB将两个数组(一个字符串单元格和一个数字向量)附加到.csv中

时间:2015-12-10 21:46:15

标签: arrays matlab csv export-to-csv

我有两个数组,X和Y

X有这样的数字数据:

12342 1355 2324 ...

Y有这样的字符串:

APPLE METRO BLANKET ...

我想以这种格式将这些数组附加到预先存在的.csv中:

X(1,1), Y{1,1} X(2,1), Y{2,1} X(3,1), Y{2,1} ...

我该怎么做?

1 个答案:

答案 0 :(得分:0)

遗憾的是,将单元格数组写入csvs可能会非常棘手。您需要循环使用这种或那种方式,以便可以访问每个单元格中的数据。单元格不自动写入的原因是单元格可以包含任何内容 - 就像整个数据矩阵一样。

允许任何类型的单元格/矩阵组合的最通用的方法是使用fprintf - 您只需要指定格式。 http://au.mathworks.com/help/matlab/ref/fprintf.html

nrows = size(x,1);
fid = fopen('newfile.csv','w');
for aa = 1 : nrows
    fprintf(fid,'%f,%s\r\n', x(aa,1), y{aa,1});
end

如果只追逐十进制数而不是浮点精度,则可以使用%d而不是%f。

我发现fprintf要比这种情况下的任何替代方案都快。它有点低级,但允许你写任何你喜欢的文件。