我想以每个值都映射到 1 或 0 的方式存储值。例如:
3 => 0
6 => 1
9 => 1
7 => 1
对于给定的值,我希望能够找到具有相同映射值的所有其他值。在此示例中,值 6 也将产生值 9 和 7。
matlab中最好的解决方案是什么?
如果您唯一需要的是将一些值分配给其他一些实数(这至少是您的问题中的样子),您应该简单地使用数组:
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
看看这个。您描述的数据结构称为 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