MATLAB的sortrows
函数似乎使每个排序组内的排序保持不变。有谁知道这是否属实,因为我找不到任何支持这一点的文档。
使用 MATLAB 提供的示例sortrows:
A = {'Germany' 'Lukas'; 'USA' 'William'; 'USA' 'Andrew'; ...
'Germany' 'Andreas'; 'USA' 'Olivia'; 'Germany' 'Julia'}
A =
'Germany' 'Lukas'
'USA' 'William'
'USA' 'Andrew'
'Germany' 'Andreas'
'USA' 'Olivia'
'Germany' 'Julia'
并申请sortrows(A, [1])
ans =
'Germany' 'Lukas'
'Germany' 'Andreas'
'Germany' 'Julia'
'USA' 'William'
'USA' 'Andrew'
'USA' 'Olivia'
看到在原始数据中,Germany
第一列中的后面是Lukas
, Andreas
, Julia
在第二列中从上到下阅读。这会保留在最终结果中。
这种行为有保证吗?
Yes.
Matlab使用快速排序这是稳定的(如果他们不采用一些特定于数据的优化)。在大多数情况下,我假设 Matlab 使用稳定排序,但如果不查看源代码就无法确定。
您最好的选择是联系 Matlab 技术支持,以确保他们的排序算法确实稳定,以及他们将来是否有任何改变这一点的计划。
sortrows
使用内部排序。您可以阅读源码:
>> edit sortrows
编辑:更多info
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)