获得在Matlab与字典键的列表值列表
问题描述:
假设我用的容器映射到创建MATLAB字典其具有如下图:获得在Matlab与字典键的列表值列表
1-A;
2-B;
3-C;
表示字典作为D.
现在我有一个输入列表[2,1,3]
,我期待的是[B,A,C]
。问题是,我不能仅仅使用[2,1,3]
作为D的输入列表,而只能为D输入2,1 and 3
,并且每次都得到B, A, C
。 这可以完成工作,但正如您所看到的,效率稍差。
所以我的问题是:还有什么我可以做的,让字典同时返回整个列表?
答
据我所知,没有像Python的dict.items
这样的一步式解决方案。但是,你可以写几行。 mydict.keys()
给你字典作为单元阵列的钥匙,mydict.values()
给你值作为一个单元阵列,这样你就可以(在理论上)相结合的:
>> mykeys = mydict.keys();
>> myvals = mydict.values();
>> mypairs = [mykeys',myvals']
mypairs =
3×2 cell array
'A' [1]
'B' [2]
'C' [3]
然而,原则上图是无序的,并在MATLAB文档中我找不到任何说明订单返回keys
和values
返回的订单必然一致(unlike Python)。因此,如果您想要更加安全,您可以拨打values
,并选择您想要的按键单元阵列,在这种情况下,这将是所有按键:
>> mykeys = mydict.keys();
>> myvals = mydict.values(mykeys);
>> mypairs = [mykeys',myvals']
mypairs =
3×2 cell array
'A' [1]
'B' [2]
'C' [3]