selecting values between vectors and plot the values

1 Ansicht (letzte 30 Tage)
michael
michael am 18 Jan. 2021
Bearbeitet: dpb am 19 Jan. 2021
Hi,
I have 4 vectors which are unsorted. All have all same length of 360:
Ax, Bx - Values are real numbes between 0 to 360. Values are increasing / decreasing and with modulu 360.
Ay,By - corrolated to Ax, Bx. real numbes between 0 to 180.
(Best was to describe thos vectors are as single sine with phase shift and/or reversal (i.e. -sin(x) )).
I need to:
  1. find max between Ay, By at given point of x vectors.
  2. plot the max value with appropriate value from Ax or Bx.
What I've though is:
  1. sort Ax, Bx and to find the original order (sorting will provide me the initial value which is close to 0.
  2. based on the indexes of the sorting, find Y=max (Ay(idx_a), By(idx_b))
  3. running in for loop in order to find whether the Y(i) is related to Ay to or By and set X from Ax or Bx.
  4. plot(X,Y)
I think that this is not so elegant solution.
Would be glad to have a proposal for a more elegant one.

Antworten (1)

dpb
dpb am 18 Jan. 2021
Bearbeitet: dpb am 19 Jan. 2021
isA=(Ax>Bx);
ABx=Bx; ABx(isA)=Ax(isA);
plot(ABx,max(Ay,By))
  2 Kommentare
michael
michael am 19 Jan. 2021
Bearbeitet: michael am 19 Jan. 2021
shouldn't ABx(isA)=Bx(isA); be changed to ABx(isA)=Ax(isA);
dpb
dpb am 19 Jan. 2021
Bearbeitet: dpb am 19 Jan. 2021
Yeah, good catch. Cut 'n pasted, then missed the correction when added subscripts thought was done...codger short term memory ain't what it usta' be... :(

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Dates and Time finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by