如何从struct创建矩阵

时间:2013-06-17 18:31:37

标签: matlab matrix structure cell-array

我的结构PI{1x50cell}包含字段xyzxytdes

xyzxyt是双打的。但是,des是1x640向量。

我想将它映射到一个两个矩阵,第一个将是50x5,第二个将是50x640。

怎么做?提前谢谢。

1 个答案:

答案 0 :(得分: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);