convert vector a to b
3 views (last 30 days)
Show older comments
nurhayat sahinkaya
on 26 Dec 2018
Commented: Image Analyst
on 27 Dec 2018
I have a vector, a:
a = [1 2 4 7 3 5 8 9 6 12 10 11 13 14]
I want to create a vector, b, that writes the value of each element in this vector. The result for the vector I gave as an example is:
b = [1 2 5 3 6 9 4 7 8 11 12 10 13 14]
So, a vector in the value of 3 is the 5th rank in the b vector 3 as in the order to write 5.
How do I convert a vector to b?
2 Comments
Image Analyst
on 26 Dec 2018
I don't understand. So starting with "a", the 3 is in the 5th element. Since we don't yet have "b" (it's not been created from "a" yet), what do you mean by "3 is the 5th rank in the b vector". What do you mean by "rank" of the vector? The 3 is in element 4 of "b", and there is a 5 in element 3 of "b". But I don't really know how each element of b is created.
Image Analyst
on 27 Dec 2018
OK, I think David figured it out. I guess rank really means the sort order rather than rank of a matrix. I never was able to understand "the value of 3 is the 5th rank in the b vector 3 as in the order to write 5" but I guess David luckily was. Be sure to see David's clairvoyant answer below.
Accepted Answer
David Goodmanson
on 27 Dec 2018
Edited: David Goodmanson
on 27 Dec 2018
Hi nurhayat,
try
[~, b] = sort(a)
so that b is the set of indices of a such that a(1) = 1, a(2) = 2, a(5) = 3, a(3) = 4 etc. and generally a(b) = 1:14, sorted order.
0 Comments
More Answers (0)
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!