Filter löschen
Filter löschen

sort the in plot

5 Ansichten (letzte 30 Tage)
HADIMARGO
HADIMARGO am 27 Jun. 2021
Bearbeitet: dpb am 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

Akzeptierte Antwort

dpb
dpb am 27 Jun. 2021
Bearbeitet: dpb am 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 Kommentare
HADIMARGO
HADIMARGO am 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 am 27 Jun. 2021
See
doc sort
read about the possible return values...
It's always the place to start... :)

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Shifting and Sorting Matrices finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by