在MATLAB中映射数值。

在MATLAB中映射数值。,matlab,map,hashmap,Matlab,Map,Hashmap,我希望以每个值都映射到1或0的方式存储值。例如: 3 => 0 6 => 1 9 => 1 7 => 1 对于给定的值,我希望能够找到具有相同映射值的所有其他值。在本例中,值6也将产生值9和7 matlab中的最佳解决方案是什么?请查看。您正在描述的数据结构称为hashmap或map 例如 keySet = {'Jan', 'Feb', 'Mar', 'Apr'}; valueSet = [327.2, 368.2, 197.6, 178.4]; mapObj =

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

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

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

请查看。您正在描述的数据结构称为
hashmap
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
退房。您正在描述的数据结构称为
hashmap
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

如果您只需要将一些值分配给其他实数(这至少是您的问题中的情况),那么您应该简单地使用数组:

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

如果您只需要将一些值分配给其他实数(这至少是您的问题中的情况),那么您应该简单地使用数组:

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