2016-07-19 162 views
0

我需要訪問結構內的結構:我有一個名爲GlobalStruc的主結構,它具有許多項目(我的「包」)。每個分組包含許多信息,即具有許多字段。其中之一本身就是一個有幾個領域的結構。我需要訪問每個這些字段。任何想法?在Matlab結構中訪問結構中的特定字段

總結:GlobalStruc.DetailsS​​truc包含許多字段並且有很多索引。我怎樣才能訪問這些?如果更方便,我可以用這些字段創建一個數組嗎?像CharacteristicOfThePacket = GlobalStruc(指數)的東西.DetailsS​​truc.FieldThatIWant

下面是主要的結構是如何構建的例子: '

GlobalStruc(1).data1 = 1; GlobalStruc(1).data2 = 12; GlobalStruc(1).moredata.velocity = 327; GlobalStruc(1).moredata.bbeta = 3.2; GlobalStruc(2).data1 = 23; GlobalStruc(2).data2 = 56; GlobalStruc(2).moredata.velocity = 442; GlobalStruc(2).moredata.bbeta = 1.7; GlobalStruc(3).data1 = 4.3; GlobalStruc(3).data2 = 7; GlobalStruc(3).moredata.velocity = 556; GlobalStruc(3).moredata.bbeta = 1.1;

` 現在,我想我可以說:

myVelocities=GlobalStruc(:).moredata.velocity; 

但我得到這個錯誤:

Expected one output from a curly brace or dot indexing expression, 
but there were 3 results. 

太感謝你了,

+1

[嵌套結構](http://ch.mathworks.com/help/ matlab/matlab_prog/access-data-in-nested-structures.html) – obchardon

回答

0

你不能在一個單行,但你可以這樣做:

InnerStruct = [GlobalStruc.moredata]; 

然後訪問第一個元素:

InnerStruct(1) 

ans = 

    velocity: 327 
    bbeta: 3.2000 

或該結構的第i個元素:

InnerStruct(i) 
+0

問題是我在主結構中有很多索引,並且它們共享相同的字段(名稱)...我更新了我的帖子;)謝謝您的幫助。 – LeChat

+0

已更新我的回答 –

+0

如果我需要將with元素的速度賦值給向量A,該怎麼辦?這實際上是我的問題;)謝謝你的幫助! – LeChat