在Matlab中获取带有字典键列表的值列表

时间:2017-05-04 04:44:12

标签: matlab dictionary

假设我使用容器映射在MATLAB中创建一个字典,其中包含以下映射:

laravel eloquent

将字典表示为D。

现在我有一个输入列表1-A; 2-B; 3-C; ,我期待的是[2,1,3]。问题是,我不能仅使用[B,A,C]作为D的输入列表,而是只为D逐个输入[2,1,3]并且每次都获得2,1 and 3。 这可以完成工作,但正如您所看到的,它的效率会降低一些。

所以我的问题是:我还能做些什么来让字典同时返回整个列表吗?

1 个答案:

答案 0 :(得分:1)

据我所知,没有像python的dict.items这样的单步解决方案。但是,你可以排成几行。 mydict.keys()为您提供了dict的键作为单元格数组,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返回的订单必须一致的{({{ 3}})。因此,如果您想要更加安全,可以使用所需键的单元格数组values来调用,在这种情况下,这些键将是所有键:

>> mykeys = mydict.keys();
>> myvals = mydict.values(mykeys);
>> mypairs = [mykeys',myvals']
mypairs =
  3×2 cell array
    'A'    [1]
    'B'    [2]
    'C'    [3]