How would I find the first twelve local maximum (peak) values for y and the corresponding times (t) using a script?
Prashant Kumar answered .
2025-11-20
x = linspace(0,20,250); % Create Data y = exp(-0.25*x) .* sin(2.5*pi*x); % Create Data dy = gradient(x,y); % Derivative: dy/dx zx = dy.*circshift(dy, [0 -1]); % Zero-Crossings Of Derivative pkix = find(zx<0); % Zero-Crossing Indices pkix = pkix(y(pkix)>0); % Indices Of Peaks xpks = x(pkix(1:12)); % X-Coordinates Of First 12 Peaks ypks = y(pkix(1:12)); % Y-Coordinates Of First 12 Peaks figure(1) plot(x,y) hold on plot(xpks,ypks,'^r') hold off
