Scilab 按第二列排序

Scilab sort by second column

我有一些数据:

P = [3 10 25 32 43 1 3
6 12 35 39 49 4 9
2 9 23 36 47 2 9
...
7 20 35 42 44 3 7
15 18 19 41 42 4 6
10 18 32 35 46 3 10];

数据总是在 1 到 50 之间。 我选择左 5 列和右 2 列:

L=P(:,1:5);
R=P(:,6:7);

我正在计算出现次数:

a=tabul(L);
b=tabul(R);

此时此刻,在 a 我得到:

50.   3.
49.   4.
48.   3.

这告诉我,值 50 出现了 3 次,49 出现了 4 次,依此类推。 我现在需要的是按第二列对矩阵 a 进行排序,但第一列应与第二列值一起排列。所以它看起来像这样:

49.   4.
50.   3.
48.   3.

如何按这种方式对矩阵 a 进行排序(稍后我将按相同的方式对 b 进行排序)?

我正在尝试类似的东西:

[a,idx]=gsort(a(:,2),"g","d");
a=a(idx,:);

但这不是我需要的。

它不起作用,因为您在 gsort 调用中覆盖了 a,尽管您只需要此处的索引。以下是您想要的:

[dummy,idx]=gsort(a(:,2),"g","d");
a=a(idx,:);