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!

댓글 수: 2

the cyclist
the cyclist 2015년 8월 27일
편집: the cyclist 2015년 8월 27일
I don't understand the rule you are trying to explain, or your example. Can you use actual MATLAB commands to define your input/output, such as
x = [1 10; 2 11; etc]
y = [1 2; 2 2; 3 3; etc]
and give another example or two of input/output?
Camilo  Corredor
Camilo Corredor 2015년 8월 27일
the vector length and the elements are random between 0 and 24. However the elements are sorted but they do not correspond with index vector. For example:
This vector
Left side = index vector Right side = content vector
Then,
  • 1 3
  • 2 4
  • 3 5
  • 4 10
  • 5 11
  • 6 13
  • 7 14
  • 8 15
  • 9 16
Then, I must to have a length vector equal to 24, where the content of every index vector be equal to index. But if any number does not exist, then one could put in that element vector 0 or NaN.
I thank your help. If is possible, this is my email cami23.cr23@gmail.com Maybe we can talk by hangout It's very important, this is for my undergraduate thesis

댓글을 달려면 로그인하십시오.

 채택된 답변

Stephen23
Stephen23 2015년 8월 27일
편집: Stephen23 2015년 8월 27일

0 개 추천

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).

댓글 수: 6

Camilo  Corredor
Camilo Corredor 2015년 8월 27일
편집: Camilo Corredor 2015년 8월 27일
I tried to use a vector containing 0 and those instructions does not work. I think that Matlab does not identify the index vector 0.What can I do to read value 0 in the vector?
Thanks for your help!
Awesome solution!
Greetings from Colombia.
>> inp = [0;10;11;12;15;16;17;18;19;20;22;24];
>> out = nan(25,1);
>> out(inp+1) = inp
out =
0
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
NaN
10
11
12
NaN
NaN
15
16
17
18
19
20
NaN
22
NaN
24
Camilo  Corredor
Camilo Corredor 2015년 8월 27일
Thank!
I really appreciate it!
Greetings from Colombia!
Camilo  Corredor
Camilo Corredor 2015년 8월 28일
Excuse me Sir, But I have another question
If i had associated information to the vector inp like in your example but this data does not have any trend or structure. How can I organize it with the same structure?
Thank you!
Stephen23
Stephen23 2015년 8월 28일
편집: Stephen23 2015년 8월 28일
If you have another vector of values vec with the same number of elements as inp, then you can use much the same indexing as in the answers I gave you:
>> inp = [0;10;11;12;15;16;17;18;19;20;22;24];
>> vec = [0,01,11,21,51,61,71,81,90,02,22,42];
>> out = nan(25,2);
>> out(inp+1,1) = inp;
>> out(inp+1,2) = vec
out =
0 0
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
NaN NaN
10 1
11 11
12 21
NaN NaN
NaN NaN
15 51
16 61
17 71
18 81
19 90
20 2
NaN NaN
22 22
NaN NaN
24 42
You can learn how these basic commands work by doing MATLAB's introductory tutorials:
Camilo  Corredor
Camilo Corredor 2015년 8월 31일
Thank you!
I solved my problem! :)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Shifting and Sorting Matrices에 대해 자세히 알아보기

질문:

2015년 8월 27일

댓글:

2015년 8월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by