我在 MATLAB 中有一个结构数组,所有这些结构都具有相同的结构(相同的字段)。我想要一种快速的方法来编译一个数组,该数组包含整个结构数组中特定字段的所有值。有没有办法在不使用循环的情况下做到这一点?
提前致谢
假设您的数组已命名a
并且您有一个 field b
。访问a.b
会为您提供.b
中每个元素的字段值列表a
。如果你想把它变成一个列表,只需将列表包装在[]
. 那是:
>> a = [struct('a', 1, 'b', 10, 'c', 100), struct('a', 2, 'b', 20, 'c', 200)];
>> a
a =
1x2 struct array with fields:
a
b
c
>> a.b
ans =
10
ans =
20
>> [a.b]
ans =
10 20
>> [a.c]
ans =
100 200
如果您有一个结构矩阵,则可以使用上述方法获取一个向量,然后使用以下方法将其重塑为矩阵:
>> reshape([a.b], size(a))
ans =
10 111
20 222