在MATLAB中映射数值。

时间:2012-09-22 14:40:46

标签: matlab map hashmap

我想以每个值映射到1或0的方式存储值。例如:

3 => 0
6 => 1
9 => 1
7 => 1

对于给定的值,我希望能够找到具有相同映射值的所有其他值。在此示例中,值6也将产生值9和7。

matlab中最好的解决方案是什么?

2 个答案:

答案 0 :(得分:3)

如果您唯一需要的是将某些值分配给其他实数(至少在您的问题中看起来像这样),您应该只使用数组:

idx = [3 6 9 7];
val = [0 1 1 1];

现在您可以使用find

提取1或0的所有索引
idx(find(val==1))

ans =

 6
 7
 9

idx(find(val==0))

ans =

 3

答案 1 :(得分:1)

检查this。您描述的数据结构称为hashmapmap

<强> e.g。

keySet =   {'Jan', 'Feb', 'Mar', 'Apr'};
valueSet = [327.2, 368.2, 197.6, 178.4];
mapObj = containers.Map(keySet,valueSet)

此代码返回地图的描述,包括属性值:

mapObj = 

  containers.Map handle
  Package: containers

  Properties:
        Count: 4
      KeyType: 'char'
    ValueType: 'double'

  Methods, Events, Superclasses