## arrange indices

Asked by huda nawaf

### huda nawaf (view profile)

on 28 Apr 2012
Accepted Answer by Andrei Bobrov

### Andrei Bobrov (view profile)

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

## Products

No products are associated with this question.

### Andrei Bobrov (view profile)

Answer by Andrei Bobrov

### Andrei Bobrov (view profile)

on 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,[]);
```

huda nawaf

### huda nawaf (view profile)

on 28 Apr 2012

i want arrange the third , sixth, ninth,....elements with ascending , but when these elemnts are arranged the other elements that correspond with it it must be arranged also according to the
as example above
r=[2 4 18 5 6 15 3 4 16];
it must be as:
r=[5 6 15 3 4 16 2 4 18]
thanks

huda nawaf

### huda nawaf (view profile)

on 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 (view profile)

on 29 Apr 2012

out = [r(1),reshape(sortrows(reshape(r(2:end),3,[])',3)',1,[])];

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

### Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Learn MATLAB today!