2013-06-17 2 views
0

У меня есть структура PI{1x50cell} с полями x, y, z, xy, t, des.Как создать матрицу из структуры

x, y, z, xy, t двойники. Однако des является вектором 1x640.

Я хотел бы, чтобы это отображалось на две матрицы, первая из которых будет 50x5, а вторая будет 50x640.

Как это сделать? Заранее спасибо.

+0

Ваш вопрос остается неясным. У вас есть массив ячеек 1x50, и каждая ячейка содержит одну структуру? –

+0

yes PI - массив ячеек 1x50, и каждая ячейка объединяет одну структуру, где есть поля x, y, z, xy, t, des. – Ren

+1

Могу ли я спросить, почему вы не используете [массив структур] (http://blogs.mathworks.com/loren/2006/11/24/working-with-arrays-of-structures/)? –

ответ

1

Вот пример:

%# sample 1x50 cellarray, each element is a struct 
PI = repmat({struct('x',1,'y',2,'z',3,'xy',4,'t',5,'des',rand(1,640))}, [1,50]); 

%# create an array of structs 
C = [PI{:}]; 

%# extract fields and build M1 a 50x5 matrix, and M2 a 50x640 matrix 
M1 = [vertcat(C.x) vertcat(C.y) vertcat(C.z) vertcat(C.xy) vertcat(C.t)]; 
M2 = vertcat(C.des); 
+0

Я так благодарен, он работает – Ren

+0

@Ren: рад, что я мог бы помочь – Amro

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