从Matlab导出巨大的矩阵

时间:2015-06-22 20:31:47

标签: excel matlab matrix

我在Matlab中通过

生成了一些值
for count =  1:30

-Do stuff-

Data{Count} = [Multiple values] %here

end %Count

我正在尝试将这大块数据复制到MS Excel,但我总是这样:

From a Matlab variable

...然后我必须逐个打开每个单元格中的每个矩阵来提取它们的值。当我在Matlab中打开变量时,我很想看到所有的矩阵,如下所示:

enter image description here

并且可以轻松地将它们复制并粘贴到excel中,这就是为什么我首先将它们分成1,2,3 ......的原因。

有什么意见吗? Matlab Ver 2010b。

1 个答案:

答案 0 :(得分:2)

所以你将数据存储在一个单元格数组中,我假设你的Data {c}是列向量,例如:

    data    = cell(1,2);
    data{1} = [1; 2; 3; 4];
    data{2} = [5; 6; 7; 8];

从这里,你可以通过

构建一个表
    T = table(data{1},data{2},'VariableNames',{'sample1','sample2'});

或者,对于较大的数据集,

    T = array2table(cell2mat(data));

这假设每个单元格中的条目数相同,否则您将使用cell2mat遇到串联错误。这里的一个解决方法是用零填充数据{c}以获得一致的维度,尽管这可能会弄乱您的数据分析。

如果每个数据{c}中的条目数量不同,我建议您存储每个数据值 在一个单独的单元格中,即

    for c = 1:n
    ...
    values = [some values];        
        for r = 1:length(values)        
            data{r,c} = values(r);    
        end
    end 

并使用cell2table()函数:

    T = cell2table(data);

然后您可以通过

导出到Excel
    filename = 'test.xlsx';
    writetable(T,filename)