gpt4 book ai didi

matlab - 在Matlab中按升序重新排序的位置?

转载 作者:行者123 更新时间:2023-12-02 09:31:35 24 4
gpt4 key购买 nike

我在 Matlab 中有一个维度为 mxn 的矩阵,例如

A= [ 1     1     1;
1 1 1;
2 2 2;
0 0 1]

我想按升序对 A 的行进行排序,并获取该顺序中每行的位置。如果我使用

[~,~,jj] = unique(A,'rows');

我明白

jj=[2;2;3;1]

我想要得到的是 jj=[2;3;4;1] (或 jj=[3;2;4;1]),即即使 A 的前两行是等效的,它们也不应该关联到相同的位置 jj

最佳答案

检查sortrows 。这会基于行对数组进行排序,并为您提供一个数组索引,告诉您每行最初的位置。

[B,index] = sortrows(A);


B =

0 0 1
1 1 1
1 1 1
2 2 2

index =

4
1
2
3

而且,正如@Divakar 指出的:

[~,out] = intersect(index,1:4);
out =

2 3 4 1

关于matlab - 在Matlab中按升序重新排序的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32592483/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com