2012-10-31 43 views
1

我有一個地圖containers.Map(array1, array2),我想根據array1中的值排序。數組中包含相當多的數據(每個數據中約有50,000個元素)。MATLAB按容器排序containers.Map(key,value)按鍵

是否有一個簡單的方法來做到這一點,也許使用一些內置的MATLAB功能?

環境是MATLAB 2012. array1是一個字符數組。

在此先感謝!

回答

4

由於container.Map是一個字典或哈希表實現,因此您無法在數據結構本身中定義某些元素的排序。然而,在默認情況下MATLAB(根據keys)排序keysvalues當您查詢他們:如果地圖的價值排序

keySet = {'Jan', 'Feb', 'Mar', 'Apr'}; 
valueSet = [327.2, 368.2, 197.6, 178.4]; 
mapObj = containers.Map(keySet,valueSet); 

>> keys(mapObj) 
ans = 
    'Apr' 'Feb' 'Jan' 'Mar' 

>> values(mapObj) 
ans = 
    [178.4000] [368.2000] [327.2000] [197.6000] 
+0

,那麼任何函數存在嗎? – minssi