2015-11-30 119 views
2

假設我有一個結構:是否有可能在Matlab中將結構轉換爲地圖?

myStruct = struct() 
myStruct.a = 1; 
myStruct.b = 20; 
myStruct.c = 4; 

是否有可能將其轉換映射,其中鍵是該結構域?例如,myMap('a')應返回1

+2

雖然@ Luis的回答是正確的,但我會注意到,您可以使用動態字段名稱:'myStruct。('a')== 1'從結構中獲得類似地圖的行爲。 – TroyHaskin

+2

@TroyHaskin好點。大概地圖可以完全避免 –

+0

我不知道動態字段名稱。這和路易斯的回答一樣,解決了我的問題。 –

回答

5

這是可以做到如下:

myMap = containers.Map(fieldnames(myStruct), struct2cell(myStruct)); 

此使用語法myMap = containers.Map(keys, values),其中

  • keysmyStruct的字段名稱的單元陣列,由該函數產生的fieldnames;
  • values是用struct2cell獲得的值爲mystruct的單元陣列。
相關問題