垂直串联

Vertical concatenation

我会问一个相当简单的问题,但到目前为止我找不到答案。我有一个包含名称和数据的结构让我们说:

mystruct(1).Name = 'A' 
mystruct(1).Data = 1x100double
mystruct(2).Name = 'B'
mystruct(2).Data = 1x100double
mystruct(3).Name = 'C'
mystruct(3).Data = 1x100double

现在我想从 'A' 和 'C' 创建一个双精度数组,尺寸为 2x100double。我唯一能想到的是:

thingsiwant = [1;3]
myarray = [mystruct(thingsiwant)]

无论数据最终是 1x200 而不是 2x100。我尝试了几种向量维度的组合,但我无法想出解决方案,现在我选择

myarray = reshape([mystruct(thingsiwant)],2,100)

它可以工作,但作为代码看起来不太好。有没有更好的方法来获得我想要的东西?提前谢谢你

myarray = cat(1,mystruct(thingsiwant).Data)

你想要的是:

mystruct(1).Name = 'A';
mystruct(1).Data = 1:100;
mystruct(2).Name = 'B';
mystruct(2).Data = 1:100;
mystruct(3).Name = 'C';
mystruct(3).Data = 1:100;

A = vertcat(mystruct(thingsiwant).Data);
size(A)

输出:

ans =

     2   100