从Matlab导出巨大的matrix
我有一些在Matlab中生成的值
for count = 1:30 -Do stuff- Data{Count} = [Multiple values] %here end %Count
我试图将这个大块的数据复制到MS Excel,但我总是得到这个:
…然后我必须逐个打开每个单元格中的每个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)