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好点。大概地图可以完全避免 –
我不知道动态字段名称。这和路易斯的回答一样,解决了我的问题。 –