Matlab中整数三元组的字典顺序

Lexicographic ordering of triplets of integers in Matlab

我有以下问题:我有一个 N 整数三元组数组(即 Nx3 矩阵),我想在 Matlab 中按字典顺序对其进行排序。为此,我想到了使用Matlab内置的sort算法,但我想问一下我的想法是否正确,或者是否存在更简单的方法(最好使用Matlab例程) .

我想到将每个三元组转换成一个数字,然后用 sort() 对这些数字进行排序。如果我的整数介于 0 和 9 之间,我可以将它们转换为十进制。然而,它们更大。如果它们的最大绝对值是M,我想到了这样将它们转换成(M+1)元系统: if (a,b,c)的三元组,对应的整数是a*(M+1)^2+b*(M+1)+c。对这些转换后的整数进行排序会解决问题,还是我在推理中犯了逻辑错误?

谢谢!

PS:我知道 Matlab 中的 sort() 确实有字符串的字典选项,但我的整数没有相同的数字长度。也许用前导零填充它们并将它们连接起来就可以了?

您是否考虑过使用 sortrows
应该使您能够直接按字典顺序对 3 列数据进行排序。