我试图在这里对数据进行排序后取回原始数据是代码,运行速度非常慢:
[Rs,iR] = sort(R,1);
for j = 1:length(Rs)
for q = 1:length(iR)
if(iR(q) == j)
R_org(j,1) = Rs(iR(q));
end
end
使用评论中显示的方法后,我的回答不一样:
K>> R = [8;2;7;9;10]
R =
8
2
7
9
10
K>> [Rs,iR] = sort(R,1)
Rs =
2
7
8
9
10
iR =
2
3
1
4
5
K>> R_org = Rs(iR)
R_org =
7
8
2
9
10
R和R_org不匹配
答案 0 :(得分:2)
给出一个列表W
,用f
,U = W(f)
排序,找到g
,使得W = U(g)
:
W
-f
-> U
-g
-> W
解决方案:
[U, f] = sort(W);
[~, g] = sort(f);
(这里的“ ~
”表示无所谓)