Iが配列r
を有し、iはシーケンスを取得するために順列k
に従ってr
の成分をrearangingする必要があります順列に従って配列の成分を並べ替える方法は?
abs(y0) > abs(y1) > abs(y2) > abs(y3) > abs(y4)
と
y = [y0 y1 y2 y3 y4 y5 y6 y7]
と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 = [1 2 3 5 4 6 7]'を持っている間に自動的にkが作成されます。私のコードは 'k = [1 2 3 4 5 6 7]'を与えます。 – m2016b
だから、 'y = r(k);'を 'k'で再計算せずに使うだけですか? – m7913d