2013-11-27 55 views
0

我正在为我的情况创建一个虚拟示例。真正的问题更复杂。从Matlab打印到Excel

假人实施例:

我有大小2的结构与所谓的“名称”的入口和尺寸2×1的阵列。

因此,该结构被称为商店的样子:

Store(1).name = 'Apple'; 
Store(1).Data = [1; 2]; 

Store(2).name = 'Orange'; 
Store(2).Data = [24; 57]; 

我想打印到Excel,使得它看起来像如下:

Apple  1 
Apple  2 
Orange 24 
Orange 57 

我甚至不知道如何从上面的例子开始。过去我使用过xlswrite,但从来没有用过混合类型的数据。

+0

你能把它打印成csv,然后在excel中手动打开它吗?我不熟悉matlab知道如何做到这一点,但我相信这是可能的。 – quazzieclodo

回答

3

如果所有的Data字段大小2x1的,你应该能够如下:

% prepare cell to hold your data 
xlData = cell(2*numel(store), 2); 
% fill column 1: 
xlData(1:2:end-1,1) = {store.name}; 
xlData(2:2:end,1) = xlData(1:2:end-1); 
% fill column 2: 
xlData(:,2) = num2cell(vertcat(store.Data)); 
% write to excel: 
xlswrite('yourExcelfile.xlsx', xlData) 

有没有在Matlab的手来进行测试,但它应该可以帮助您去。

由于xlswrite需要一个单元阵列,所以混合数据类型没有问题。

+0

非常优雅的解决方案。 – Zanam