我想以每个值映射到1或0的方式存储值。例如:
3 => 0
6 => 1
9 => 1
7 => 1
对于给定的值,我希望能够找到具有相同映射值的所有其他值。在此示例中,值6也将产生值9和7。
matlab中最好的解决方案是什么?
答案 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。您描述的数据结构称为hashmap
或map
。
<强> 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