从Matlab导出巨大的matrix

我有一些在Matlab中生成的值

for count = 1:30 -Do stuff- Data{Count} = [Multiple values] %here end %Count 

我试图将这个大块的数据复制到MS Excel,但我总是得到这个:

从一个Matlab变量

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

在这里输入图像说明

并轻松地将它们复制并粘贴到excel中,这就是为什么我将它们分隔成1,2,3 …首先。

有什么意见? Matlab Ver 2010b。

因此,您将数据存储在单元格数组中,并假设您的Data {c}是列向量,例如:

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

从这里,你可以通过构build一个表

  T = table(data{1},data{2},'VariableNames',{'sample1','sample2'}); 

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

  T = array2table(cell2mat(data)); 

这假定每个单元格中的条目数相等,否则使用cell2mat会遇到串联错误。 一种解决方法是将数据{c}填充到零以获得一致的维度,尽pipe这可能会让您的数据分析变得困难。

在每个数据{c}中条目数量不同的情况下,我会build议您将每个数据值存储在一个单独的单元格中,即

  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)