2017-06-16 88 views
1

我和包含單個事件的發生的一個列向量的每個CEL一個8x18結構。我想從這些字段中的一些字段中獲取數據,而不必循環訪問它們。我似乎無法找到一種方法來縱向連接我感興趣的單個數組中的字段。MATLAB垂直串聯邏輯索引的數組

正如我創建出現每單元1和5之間的以下結構的示例:

s(62).vector(8,18).heading.occurrences=[1;2;3]; 
for i=1:62 
    for j=1:8 
     for k=1:18 
      y=ceil(rand(1)*5); 
      s(i).vector(j,k).heading.occurrences=rand(y,1); 
     end 
    end 
end 

現在我想獲得在幾個小區所有出現,同時保持恆定我在即時I = 1。我曾嘗試是:

%fields of interest 
    a=[1 26 45]; 
    x=[s(1).vector(a).heading.occurrences]; 

然而,這產生了錯誤:從一個大括號或點索引表達式輸出 預期之一,但也有3個結果。

是否有任何人是如何做到這一點,而不在整個結構中具有循環?

回答

1

在這裏你去:

ss=s(1).vector([1 26 45]);      
h=[ss.heading];    
cell2mat({h.occurrences}') 
+0

就像一個魅力非常感謝你傑德! :)如果我想對s做同樣的操作,例如s([1 2 3])。vector([1 26 45]),那麼這將如何工作?我試過xx = s([1 2 3]),yy = xx.vector([1 26 45]),但是這給了我相同的錯誤。矢量操作也可以嗎? – Jasper

+0

@Jasper請避免問一個新的問題作爲評論。要麼接受這個答案,並創建一個提及您以前的相關問題的新問題,或者編輯您的問題以包含所有必要的信息來回答您的問題,但避免一次詢問多個不同的問題。 – m7913d

+0

對不起,我是這個論壇的新手。我更新了我的問題 – Jasper