如何根据排列重新排列序列的组成部分?

时间:2017-06-20 13:16:12

标签: matlab

我有一个序列r,我需要根据排列r重新安排k的组件以获取序列:

y = [y0 y1 y2 y3 y4 y5 y6 y7]

abs(y0) > abs(y1) > abs(y2) > abs(y3) > abs(y4)abs(y5) > abs(y6) > abs(y7)

示例:

r = [-2.3 2.1 2.0 -1.4 1.2 0.5 -0.02]k = [1 2 3 5 4 6 7]

所以

y = [-2.3 2.1 2.0 1.2 -1.4 0.5 -0.02]

我使用了这个命令,但是我找不到搜索到的序列:

[~,k] = sort(abs(r),'descend');
 y = r(k);

1 个答案:

答案 0 :(得分:0)

显然这只适用于较新的MATLAB版本,但如果你有一个(不确定何时引入,但肯定高于2014b),这将有效:

y=sort(r,'direction','descend','ComparisonMethod','abs')