2012-09-22 124 views
1

我想,每一個值被映射到1或0。例如存儲值的方式:在MATLAB中映射數值。

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

對於一個給定值,我想能夠找到的所有其他值與同一映射值。在這個例子中,值6也會產生值9和7.

什麼是matlab中的最佳解決方案?

回答

3

如果你唯一需要的是有一個分配給一些其他的實數一定的價值(這是至少它看起來像你的問題),你只需要使用數組:

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

現在你可以提取所有指數與1或0使用發現

idx(find(val==1)) 

ans = 

6 
7 
9 

idx(find(val==0)) 

ans = 

3 
+0

+1不錯的解決方案。 – 0x90

1

檢查this了。您所描述的數據結構稱爲hashmapmap

例如

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