sortrows 是否始终保留排序组内的原始顺序?

2023-12-03

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(使用前将#替换为@)

sortrows 是否始终保留排序组内的原始顺序? 的相关文章

  • 如何在 JavaScript 中对关联数组进行排序?

    我需要为我的一个项目通过 JS 对关联数组进行排序 我发现这个函数在 Firefox 中运行得很好 但不幸的是它在 IE8 OPERA CHROME 中不起作用 无法找到使其在其他浏览器中运行的方法 或者找到另一个适合该目的的函数 我真的很
  • 对范围值进行排序

    我想对表示数值范围的字符串数组进行排序 如下所示 b 0 5 100 250 5 25 50 100 250 500 25 50 使用sort我得到的方法 b sort gt 0 5 100 250 25 50 250 500 5 25 5
  • 检测分段常数信号中的阶跃

    我有一个分段恒定信号 如下所示 我想检测步骤转换的位置 标记为红色 我目前的做法 使用移动平均滤波器平滑信号 http www mathworks com help signal examples signal smoothing html
  • MATLAB 列含义的内存分析

    我正在使用 MATLAB 配置文件来使用命令观察内存 profile memory on profile clear my code profile report and i got this table 1 我想问一下什么意思 已分配内存
  • 如何使用自定义比较器以不同的词汇顺序对数组进行排序?

    所以 我对 C 还很陌生 我正在尝试使用自定义比较器来订购数组 我创建了一个类 class MySorter IComparer public int Compare object x object y var chars jngmclqs
  • 使用模数按字母顺序对列表进行排序

    我在获取元素列表并按字母顺序对它们进行排序方面没有任何问题 但我很难理解如何使用模数来做到这一点 更新 这是按我的方式工作的代码 但是 我更喜欢下面提供的答案的可重用性 因此接受了该答案
  • 加到 100 的随机数:Matlab

    我将人口数量分成不同的矩阵 现在想使用随机数测试我的代码 快速提问 谢谢你们提前的帮助 如果我使用 100 rand 9 1 使这 9 个数字相加等于 100 的最佳方法是什么 我想要 9 个 0 到 100 之间的随机数 加起来为 100
  • 对 Java 中的对象数组进行排序

    我正在开发一个报告模块 显示花费的时间和任务数量 这些值在 Java Bean 中设置 bean 对象存储在数组中 我使用单独的查询来获取时间和任务数量 现在我必须根据时间和任务数量对数组进行排序 下面的代码仅比较字符串 if list i
  • mysql 版本号排序

    我有这样的价值观 1 1 2 9 1 2 2 4 1 2 3 4 3 2 14 3 2 1 4 2 我需要使用 mysql 对这些值进行排序 该数据类型是 varbinary 300 所需的输出将类似于 1 1 2 1 2 3 4 2 2
  • 小矩阵乘以大矩阵

    我试图将小矩阵 假设为 2x2 中的每个元素与大矩阵 假设为 4x4 中的每个位置逐个元素相乘 所以我想要 1 2 3 4 1 0 3 0 1 0 1 2 3 4 0 0 0 0 0 0 x 1 2 3 4 1 0 3 0 1 2 3 4
  • PHP usort 重新排序数组,所有排序值都相同

    我使用 usort 对每个元素中具有关联数组的数组进行排序 当我在数组中排序的所有值都相同时 它仍然会更改数组中元素的位置 有没有办法防止这种情况 例如这个 array array name gt Ben authn weight gt 8
  • SQL数据库数据排序

    我能够获取名字和姓氏的组合长度以及按 ID 排序 但我无法按字典顺序对其进行排序 SELECT CUSTOMER ID CUSTOMER FIRST NAME CUSTOMER LAST NAME FROM CUSTOMER WHERE L
  • Matlab中皮尔逊系数和协方差的计算

    我想计算皮尔逊相关系数 http en wikipedia org wiki Pearson product moment correlation coefficient在Matlab中 不使用Matlab的corr功能 简单地说 我有两个
  • 防止Matlab舍入输出?

    我运行一个简单的脚本来估计函数的根 一切都很好 算法的每次迭代都会打印出当前的 x 和 f x 但是当脚本完成并将 x 的最终估计设置为函数的输出时 该值将被返回并四舍五入到小数点后 3 位 while k lt maxit k k 1 d
  • matlab常量匿名函数仅返回一个值而不是一个数组

    我在网上查了好几天了 没有找到什么 希望能帮到你 我有一个像这样的匿名函数 f x y sin 2 pi x cos 2 pi y cos 2 pi x sin 2 pi y 需要对一系列点进行评估 例如 x 0 0 1 1 y 0 0 1
  • 按顺时针顺序对四个点排序

    数组中的四个 2D 点 我需要按顺时针顺序对它们进行排序 我认为只需一次交换操作就可以完成 但我还没有能够正式放下这一点 编辑 在我的例子中 这四个点是凸多边形 编辑 这四个点是凸多边形的顶点 它们不必按顺序排列 如果你想从更数学的角度来看
  • FilesystemIterator 中的顺序

    http php net manual en class filesystemiterator php http php net manual en class filesystemiterator php 我注意到FilesystemIt
  • 多线程归并排序,添加额外的线程

    我在java中的多线程合并排序算法中面临一个问题 我应该将代码修改为 3 4 5 6 7 8 线程合并排序 将原始数组划分为subArrays 目前它有2subArrays 如何将原始数组拆分为 3 4 5 6 7 8subArray是为了
  • 删除 MongoDB 查询结果中的 "scanAndOrder" : true

    所以我的数据库中有一个带有以下分片键的集合 cl yyyy mm user id N 当我执行以下查询时 db collection find cl 2012 03 user id in users id lt new ObjectId 4
  • 错误:超出了程序允许的最大变量大小。使用 sub2ind 时

    请建议如何解决这个问题 nNodes 50400 adj sparse nNodes nNodes adj sub2ind nNodes nNodes ind ind 1 1 ind is a vector of indices Maxim

随机推荐