1

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

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

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

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

4

2 回答 2

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
于 2012-09-22T14:55:57.650 回答
1

看看这个。您描述的数据结构称为 ahashmap或 a map

例如

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
于 2012-09-22T14:44:56.430 回答