2013-11-27 3 views
0

Я создаю фиктивный пример для моей ситуации. Реальная проблема усложняется.Печать из Matlab в Excel

пустышки Пример:

У меня-структуру размером 2 с записью под названием «имя» и массив размером 2x1.

Итак, Struct называется магазин выглядит следующим образом:

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

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

Я хочу напечатать это, чтобы преуспеть таким образом, что она выглядит следующим образом:

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

Смежные вопросы