Clear Filters
Clear Filters

sort the in plot

5 views (last 30 days)
HADIMARGO
HADIMARGO on 27 Jun 2021
Edited: dpb on 27 Jun 2021
hi.
i have 2 matrix:
a = [ 1.2 6 3]
b = [ 2 4 5]
How do I plot this so that the x and y axes are arranged from less to more?
"x" axes is "a" and "y" axes is "b"
the result for plot should be like this:
x=1.2 , y=2 ------ x=3 , y=5 ----- x=6 , y=4

Accepted Answer

dpb
dpb on 27 Jun 2021
Edited: dpb on 27 Jun 2021
Many possible ways...
  1. Sort a, keep index for b ---
[a,ix]=sort(a); % sort a, keep order index, replace a with sorted vector
b=b(ix); % reorder b to match
plot(a,b) % now are in order on abscissa
2. Use array features instead of separate vectors...
ab=sortrows([a(:) b(:)],1); % combined array of a,b by column sorted by column 1 (a)
plot(ab(:,1),ab(:,1)) % plot the two columns against each other
Any number of permuations of the above are also possible to get to same result including not overwriting the original vectors, doing the sorting "on the fly" in the arguments of the call to plot() instead of making explicit variables, etc., etc., etc., ...
  2 Comments
HADIMARGO
HADIMARGO on 27 Jun 2021
TNX BROTHER.
[a,ix]=sort(a); % sort a, keep order index, replace a with sorted vector
b=b(ix); % reorder b to match
plot(a,b) % now are in order on abscissa
THIS CODE SOLVED MY PROBLEM.
HOW DID YOU KNOW THIS "[a,ix]=sort(a);"? which book or website?
dpb
dpb on 27 Jun 2021
See
doc sort
read about the possible return values...
It's always the place to start... :)

Sign in to comment.

More Answers (0)

Categories

Find more on Shifting and Sorting Matrices in Help Center and File Exchange

Tags

Products

Community Treasure Hunt

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

Start Hunting!