我有阵列说“a”
a =
1 4 5
6 7 2
如果我使用功能 B =排序(a)中
给出了
b =
1 4 2
6 7 5
但我想要像
一样b =
5 1 4
2 6 7
表示第二行应该排序,但是ist行的元素应该保持不变,并且应该对应于第二行。
答案 0 :(得分:3)
调用sortRows(A '2)'
拉开这个:
a = 1 4 5
6 7 2
a' = 1 6
4 7
5 2
sortrows(a',2) = 5 2
1 6
4 7
sortrows(a',2)' = 5 1 4
2 6 7
这里的关键是sortrows按指定行排序,其他所有行都遵循其顺序。
答案 1 :(得分:0)
您可以在第二行使用SORT函数,然后使用索引输出对整个数组进行排序:
[junk,sortIndex] = sort(a(2,:));
b = a(:,sortIndex);
答案 2 :(得分:0)
怎么样
a = [1 4 5; 6 7 2]
a =
1 4 5
6 7 2
>> [s,idx] = sort(a(2,:))
s =
2 6 7
idx =
3 1 2
>> b = a(:,idx)
b =
5 1 4
2 6 7
换句话说,您使用sort
的第二个参数来获取所需的排序顺序,然后将其应用于整个事物。