How to Measuring Peak Widths

52 views (last 30 days)
Aidan Fenix
Aidan Fenix on 31 Mar 2020
Commented: Dale on 19 Aug 2021
Hi,
New to Matlab and thought I'd try measuring peak width from Calcium transits in beating cardiomyocytes. I've succedded in finding peak heights and making a graph which displays the peak widths (see attached figure)
This may sound simple, but how can I generate a numerical integer, or table which provides the widths of each peak. Ideally, I would use this to find the peaks (i.e., intensity), and widths (i.e., duration) of calcium transits in multiple cell lines. A bonus would be to measure the time at 90% return to baseline.
Thanks for the help.

Accepted Answer

Akira Agata
Akira Agata on 31 Mar 2020
I believe findpeaks function can do that task. The following is an example:
% Load sample data
load sunsplot.dat;
% Define x and y
x = sunspot(:,1);
y = sunspot(:,2);
% Apply findpeaks function and obtain Peaks, Locations, and Width
[pk,loc,w] = findpeaks(y,x,'MinPeakProminence',20);
% Arrange them as a table
T = table(loc,pk,w,'VariableNames',{'Location','PeakHeight','Width'});
>> T
T =
26×3 table
Location PeakHeight Width
________ __________ ______
1705 58 2.2599
1717 63 3.6818
1727 122 3.747
1738 111 4.7879
... ... ...
  2 Comments
Aidan Fenix
Aidan Fenix on 31 Mar 2020
Hi Akira,
This is great, thank you for the response. Would you have a suggestion on finding the peak width (i.e., time) at 90% recovery to baseline (with respect to each individual peak)?
Aidan
Dale
Dale on 19 Aug 2021
Hi Aidan. Have you already finished in finding the peak width at 90%? Please teach me how.

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!