MATLAB Answers

Indicate peak value of a signal in matlab plot

64 views (last 30 days)
Is there a way to indicate the max peak value of a signal in the plot itself rather than maually hovering the mouse over it?
I know that we can use the function 'findpeaks' to indicate the peaks of a signal, but is it possible to indicate/label the numerical value of that peak at that particular point?

Accepted Answer

Shunichi Kusano
Shunichi Kusano on 24 May 2019
Does this meet your thought? I just changed the example of "findpeaks" a little.
%% sample signal generation
x = linspace(0,1,1000);
Pos = [1 2 3 5 7 8]/10;
Hgt = [3 4 4 2 2 3];
Wdt = [2 6 3 3 4 6]/100;
for n = 1:length(Pos)
Gauss(n,:) = Hgt(n)*exp(-((x - Pos(n))/Wdt(n)).^2);
PeakSig = sum(Gauss);
%% Plot the individual curves and their sum.
%% Use findpeaks with default settings to find the peaks of the signal and their locations.
[pks,locs] = findpeaks(PeakSig,x);
%% Plot the peaks using findpeaks and label them.
text(locs-.03,pks+.3,num2str(pks')) % put the text on the plot
hope this helps.




Community Treasure Hunt

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

Start Hunting!