3

我在 MATLAB 中有一个结构数组,所有这些结构都具有相同的结构(相同的字段)。我想要一种快速的方法来编译一个数组,该数组包含整个结构数组中特定字段的所有值。有没有办法在不使用循环的情况下做到这一点?

提前致谢

4

1 回答 1

3

假设您的数组已命名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
于 2012-04-03T21:01:11.983 回答