我在Matlab中通过
生成了一些值for count = 1:30
-Do stuff-
Data{Count} = [Multiple values] %here
end %Count
我正在尝试将这大块数据复制到MS Excel,但我总是这样:
...然后我必须逐个打开每个单元格中的每个矩阵来提取它们的值。当我在Matlab中打开变量时,我很想看到所有的矩阵,如下所示:
并且可以轻松地将它们复制并粘贴到excel中,这就是为什么我首先将它们分成1,2,3 ......的原因。
有什么意见吗? Matlab Ver 2010b。
答案 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)