我有一个序列r
,我需要根据置换k
以获得序列rearanging的r
的组件:如何根据排列重新排列序列的组成部分?
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);
得到的结果是什么错?问题是没有独特的解决方案,因为abs(y4)> abs(y5)'不应该是真的。你的代码返回'y = -2.3000 2.1000 2.0000 -1.4000 1.2000 0.5000 -0.0200',它满足你的条件。 – m7913d
在我的代码中,k是自动创建的,而我已经有'k = [1 2 3 5 4 6 7]'。我的代码给出了'k = [1 2 3 4 5 6 7]'。 – m2016b
那么,只需使用'y = r(k);'给定'k'而不用重新计算它? – m7913d