2
假設我有一個結構:是否有可能在Matlab中將結構轉換爲地圖?
myStruct = struct()
myStruct.a = 1;
myStruct.b = 20;
myStruct.c = 4;
是否有可能將其轉換映射,其中鍵是該結構域?例如,myMap('a')
應返回1
。
假設我有一個結構:是否有可能在Matlab中將結構轉換爲地圖?
myStruct = struct()
myStruct.a = 1;
myStruct.b = 20;
myStruct.c = 4;
是否有可能將其轉換映射,其中鍵是該結構域?例如,myMap('a')
應返回1
。
這是可以做到如下:
myMap = containers.Map(fieldnames(myStruct), struct2cell(myStruct));
此使用語法myMap = containers.Map(keys, values)
,其中
keys
是myStruct
的字段名稱的單元陣列,由該函數產生的fieldnames
;values
是用struct2cell
獲得的值爲mystruct
的單元陣列。
雖然@ Luis的回答是正確的,但我會注意到,您可以使用動態字段名稱:'myStruct。('a')== 1'從結構中獲得類似地圖的行爲。 – TroyHaskin
@TroyHaskin好點。大概地圖可以完全避免 –
我不知道動態字段名稱。這和路易斯的回答一樣,解決了我的問題。 –