MATLAB 对 container.Map(key, value) 进行排序
Posted
技术标签:
【中文标题】MATLAB 对 container.Map(key, value) 进行排序【英文标题】:MATLAB sort containers.Map(key, value) by key 【发布时间】:2012-10-31 21:16:24 【问题描述】:我有一张地图containers.Map(array1, array2)
,我想根据array1 中的值进行排序。数组中包含相当大量的数据(每个数组约 50,000 个元素)。
有没有一种简单的方法可以做到这一点,也许使用一些内置的 MATLAB 功能?
环境是 MATLAB 2012。array1
是一个字符数组。
提前致谢!
【问题讨论】:
【参考方案1】:由于container.Map
是字典或哈希表实现,因此您无法在数据结构本身中定义元素的某些顺序。但是,默认情况下,当您查询 keys
和 values
(根据 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]
.以上是关于MATLAB 对 container.Map(key, value) 进行排序的主要内容,如果未能解决你的问题,请参考以下文章