2012-04-03 65 views
3

我在MATLAB中有一個結構數組,它們都具有相同的結構(相同的字段)。 我想要一個快速的方法來編譯一個數組,其中包含來自struct數組中所有特定字段的值。有沒有辦法做到這一點,而不使用循環?提前查詢來自MATLAB結構數組的變量

回答

3

假設你的陣列

由於被命名爲a,你有一個領域b。訪問a.b可爲您提供a中每個元素的b字段的值列表。如果你想把它變成一個列表,只需將列表包裝在[]中。那就是:

>> 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 
+0

轉成「向量/矩陣」大概? – yuk 2012-04-03 21:20:45