【问题标题】:MATLAB sort containers.Map(key, value) by keyMATLAB 对 container.Map(key, value) 进行排序
【发布时间】:2012-10-31 21:16:24
【问题描述】:

我有一张地图containers.Map(array1, array2),我想根据array1 中的值进行排序。数组中包含相当大量的数据(每个数组约 50,000 个元素)。

有没有一种简单的方法可以做到这一点,也许使用一些内置的 MATLAB 功能?

环境是 MATLAB 2012。array1 是一个字符数组。

提前致谢!

【问题讨论】:

    标签: matlab sorting map containers


    【解决方案1】:

    由于container.Map 是字典或哈希表实现,因此您无法在数据结构本身中定义元素的某些顺序。但是,默认情况下,当您查询 keysvalues(根据 keys)时,MATLAB 会对其进行排序:

    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]
    

    【讨论】:

    • 如果按map的值排序,那么有什么函数存在吗?
    • @minssi 你的问题是什么意思?我不明白你在问什么。
    • 顺便说一句,它按升序排序,例如{[0]} {[1.0000e-07]} {[1.0000e-06]} {[1.0000e-05]} {[1.0000e-04]} {[1.0000e-03]}.
    猜你喜欢
    • 2015-06-30
    • 1970-01-01
    • 2012-07-23
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多