2011-12-25 60 views
6

如何從Matlab結構數組的每個元素中提取特定的字段?如何切片結構數組?

>> clear x 
>> x(1).a = 6; 
>> x(2).a = 7; 

我想包含6和7既不x(:).a也不x.a做我想做的數組。

>> x(:).a 

ans =  

    6 


ans = 

    7 

回答

9

沒問題 - 只需使用:

arr = [x.a]; 

將Concat的一切你所需要的值。 如果你有一個更復雜的數據,你可以使用大護腕:

b(1).x = 'John'; 
b(2).x = 'Doe'; 
arr = {b.x}; 
0

不幸的是,我幾乎可以肯定,MATLAB沒有很好的方式來做你想做的事情。你將不得不使用for循環來構造一個新的數組,否則返回並重新設計你的數據結構。例如,你可能能夠使用數組結構而不是數組結構。

0

對於多維數組,你需要

reshape([x.a], size(x))