2017-04-07 155 views
0

結構的MATLAB陣列快速訪問我有一個Matlab的結構:根據其ID

a(1).x=54.23; a(1).y=2.3; a(1).col=32.221; a(1).id=1; 
a(2).x=5.23; a(2).y=3.3; a(2).col=2.221; a(2).id=2; 

...等等。現在我想訪問a中的ID爲73的結構。我可以考慮做一個for循環,但事情是我必須根據id訪問幾次像這樣的數組a的元素。 Wat是可用於此目的的最快數據結構?類似Python的Python可能會工作,但我不確定是否實施它。指出一些代碼示例會很有幫助。

+0

爲什麼不'a(73)'? – excaza

+0

其實id可以是任何整數。 id可能不對應於數組中的元素編號。 –

+3

然後你可能想要一個[地圖容器](https://www.mathworks.com/help/matlab/map-containers.html) – excaza

回答

1

試試這個:

id=[a.id]; 
a(id==73) 

它並不像字典一樣高效,但如果它的速度不夠快爲您的目的是不值得進一步期待。

a.id部分評估爲逗號分隔的id值列表,這些id值串聯在一個數組中,然後可以用於查找。