MATLAB: Sort a vector in matlab

arraysortvector

Somebody can help me? From the routine in Matlab I get a vector whose length can be a number between 0 and 24. The content of this vector are numbers between 0 and 24. However, I have to sort this vector with the next conditions
1. The content must be equal to index of the sorted vector. 2. If in the content of the vector, a number doesn't exist must be equal to NaN
For example
Index Content
  • 1 10
  • 2 11
  • 3 12
  • 4 15
  • 5 16
  • 6 17
  • 7 18
  • 8 19
  • 9 20
  • 10 22
  • 11 24
In the left side is index vector and in right side the content The sorted vector that I hope to get is:
  • 1 2
  • 2 2
  • 3 3
  • 4 4
  • 5 5
  • 6 6
  • 7 7
  • 8 8
  • 9 9
  • 10 10
  • 11 11
  • 12 12
  • 13 13
  • 14 14
  • 15 15
  • 16 16
  • 17 17
  • 18 18
  • 19 19
  • 20 20
  • 21 21
  • 22 22
  • 23 23
  • 24 24
Thank for your help!

Best Answer

For clarity I have not included the indices, but these are simple to include if required.
>> inp = [10;11;12;15;16;17;18;19;20;22;24];
>> out = nan(24,1);
>> out(inp) = inp
out =
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
10
11
12
NaN
NaN
15
16
17
18
19
20
NaN
22
NaN
24
Note that I assumed that the minimum value is one, as this is what the example values show (and which contradict the OP's original question which states a minimum value of zero).