selecting values between vectors and plot the values

1 view (last 30 days)
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.

Answers (1)

dpb
dpb on 18 Jan 2021
Edited: dpb on 19 Jan 2021
isA=(Ax>Bx);
ABx=Bx; ABx(isA)=Ax(isA);
plot(ABx,max(Ay,By))
  2 Comments
michael
michael on 19 Jan 2021
Edited: michael on 19 Jan 2021
shouldn't ABx(isA)=Bx(isA); be changed to ABx(isA)=Ax(isA);
dpb
dpb on 19 Jan 2021
Edited: dpb on 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... :(

Sign in to comment.

Categories

Find more on Dates and Time in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!