arrange indices

1 Ansicht (letzte 30 Tage)
huda nawaf
huda nawaf am 28 Apr. 2012
hi, if i have this vector
r=[2 4 18 5 6 15 3 4 16]; i need arrange index 3,6,9 with ascending, and each both previous index are arranged according for that as:
r=[5 6 15 3 4 16 2 4 18]; i.e just 3,6,.....are arranged with ascending and the index befor it are arranged according to third , sixth,..... i would to say ,this is just example i have too long vector

Akzeptierte Antwort

Andrei Bobrov
Andrei Bobrov am 28 Apr. 2012
[ii,ii] = sort(r(3:3:end));
out = reshape(r(bsxfun(@plus,ii*3,(-2:0)')),1,[]);
OR:
out = reshape(sortrows(reshape(r,3,[])',3)',1,[]);
  7 Kommentare
huda nawaf
huda nawaf am 28 Apr. 2012
what if need that
ex. r=[1 2 4 18 5 6 15 3 4 16];
if need 1 in same index and the other values as:
r=[1 5 6 15 3 4 16 2 4 18];
what will be changed in this command?
out = reshape(sortrows(reshape(r,3,[])',3)',1,[]);
Andrei Bobrov
Andrei Bobrov am 29 Apr. 2012
out = [r(1),reshape(sortrows(reshape(r(2:end),3,[])',3)',1,[])];

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Interpolation finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by