2016-06-09 80 views
-1

我在MATLAB中有一个结构变量可以说X的大小为1x25。 X在其中有一个字段Y,它是一个大小为67x3的矩阵。 如何将Y字段的第一列分配给另一个向量Z? 换句话说,我想要Z z是一个大小为67x25的矩阵,其中Z X(i).Y(:,1)中的每列和i = 1:25。 我正在寻找一个或两个行命令不是for循环来做到这一点。如何访问matlab中的struct元素

谢谢!

+0

所以你要在'Z'列替换每个字段'Y'结构数组中的'X'的第一列?这与你想要的有点混淆。 – rayryeng

+0

尝试将结构数组转换为单元数组,如下所述:http://stackoverflow.com/questions/18000072/accessing-data-in-structures-without-loops –

回答

2

Comma-separated list扩张与后屏蔽应该工作:

>> X = repmat(struct('Y',rand(67,3)),1,25); 
>> Z = [X.Y]; Z = Z(:,1:3:end); 
>> size(Z) 
ans = 
    67 25