2013-11-27 59 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