How to find largest Peak Values of signal and Save X,Y Values in MATLAB

3 views (last 30 days)
Hello, I have the following Dataset in which first column shows the X-axis and 2nd Column shows the Y-axis.
I want to find Peak Value as shown in the image below and
Save the X and Y axis Values Corresponding Peak. Y axis Values as Amplitude and X axis values as Time
After that I want to subtract 2nd peak from 1st peak, and 4th peak from 3rd Peak.
It should be general for example if i got 6 peaks then 2nd subtract from 1st then 4th from 3rd and 6th from 5th
How can i do that in MATLAB
  2 Comments
Rik
Rik on 21 Feb 2023
I recovered the removed content from the Google cache (something which anyone can do). Editing away your question is very rude. Someone spent time reading your question, understanding your issue, figuring out the solution, and writing an answer. Now you repay that kindness by ensuring that the next person with a similar question can't benefit from this answer.

Sign in to comment.

Answers (2)

KSSV
KSSV on 21 Feb 2023
Read about the function max, findpeaks.
The above functions gives you index of the max value, using this index you can get x-value as well.
  2 Comments
Jan
Jan on 21 Feb 2023
Edited: Jan on 21 Feb 2023
@Hammad Younas: The question contains only a vague description of what the input is. I guess it is a matrix? If you provide a small example (small enough to be posted here without stress, large enough to reproduce a result), the reader can use it to suggest working code. But it is inefficient, if the readers spend time to invent some input data.
Currently KSSV's answer hits the point already. I'd append: After letting findpeaks determine the peaks, use: result = x(1:2:end) - x(2:2:end), to get the differences.
Please do not address specific persons by using the @-method. Remember that they get a hint, that you try to catch their attention. Imagine what will happen, if all users do so: The active members get a pile of messages and reading them reduces their time to answer questions. If all asking users push their questions in this way, the quality of the forum will suffer. Thanks for caring about this suggestion.
Rik
Rik on 21 Feb 2023
Deleted comment:
Approximately at 21 Feb 2023 08:02:28 GMT
@KSSV it does not work Sir.

Sign in to comment.


Sam Chak
Sam Chak on 21 Feb 2023
If you are referring 'e' as the exponential function, and so on, then try this:
e1 = exp(1)
e1 = 2.7183
e2 = exp(2)
e2 = 7.3891
e3 = exp(3)
e3 = 20.0855

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!