2012-08-22 47 views
7

我有一個結構,它有2個字段:timepose。我對此有多個實例在一個陣列結構組成的,所以這方面的一個例子是:將結構數組的字段提取到新數組

poses(1) 
    -time = 1 
    -pose = (doesn't Matter) 
poses(2) 
    -time = 2 
    -pose = (doesn't Matter) 
poses(3) 
    -time = 3 
    -pose = (doesn't Matter) 
... 

現在,當我打印:

poses.time 

我得到這個:

ans = 
     1 
ans = 
     2 
ans = 
     3 

我怎樣才能把這個輸出結果放入矢量中?

回答

13

使用括號:

timevec=[poses.time]; 

棘手MATLAB,我知道,我知道,你只需要記住這一個,如果你與結構工作;)

+0

字符串值呢?如果poses.time是ans =「1」ans =「2」ans =「3」,timevec = [poses.time]會給出「123」。有沒有辦法來解決這個問題 ? – zml

+1

@zml''123「'已經是一個數組了,試着索引它並親自查看。如果你想讓它們真的分開,你需要一個單元格數組:'timevec = {poses.time}'。有關字符串數組的更多信息,請參見[這裏](http://nl.mathworks.com/help/matlab/ref/strings.html) –

+0

如果'poses'是2d? – Eric

1

對於案件的字段值是(相同的尺寸)的載體和所需的結果爲矩陣形式:

posmat = cell2mat({poses.pose}'); 

即返回每個pose矢量在不同的行的posmat