Area under a peak
Mostrar comentarios más antiguos
Hi, I am struggling with calculating the area under the peak shown in the graph by red color. I want to calculate the area under the peak as well as area of the entire curve (including the peak).
The data file in.txt format has x and y axis data.
Respuestas (2)
Mathieu NOE
el 11 de Abr. de 2022
hello
based on @Davide Masiello excellent proposition, I tried to make the selection of the peak zone a bit more automatic...
the computation of the area of the peak may significantly vary based on where start and stop the selected segment , as how much of the root (being wider) will impact the result
this is how is works with the code below :
you can change the threshold (threshold_above_curve) to see the effect


clear,clc
A = readmatrix('875nm.txt'); % faster
x = A(:,1);
y = A(:,2);
[~,imax] = max(y);
% Total area
area_tot = trapz(x,y)
%area_tot = -4.5442e+03
% Area below peak
window = 200; % must be wider than expected peak
threshold_above_curve = 0.25; % above 0 and less than 0.5
[val,ind] = max(y);
x_tmp = x(ind-window/2:ind+window/2);
y_tmp = y(ind-window/2:ind+window/2);
y_tmp_d = detrend(y_tmp);
y_tmp_d = y_tmp_d - min(y_tmp_d);
ind = find(y_tmp_d>threshold_above_curve);
area_peak = trapz(x_tmp(ind),y_tmp(ind))
figure
plot(x,y,x_tmp(ind),y_tmp(ind),'r');
4 comentarios
Davide Masiello
el 11 de Abr. de 2022
Very nicely done. +1 :)
Mathieu NOE
el 11 de Abr. de 2022
thanks! :)
Sam Chak
el 11 de Abr. de 2022
Another +1
Mathieu NOE
el 11 de Abr. de 2022
thanks again !
it's the beginning of the glory ! haha
Davide Masiello
el 11 de Abr. de 2022
Editada: Davide Masiello
el 11 de Abr. de 2022
clear,clc
A = readtable('875nm.txt');
x = A.Var1;
y = A.Var2;
[~,imax] = max(y);
% Total area
area_tot = trapz(x,y)
% Area below peak
area_peak = trapz(x(imax-50:imax+50),y(imax-50:imax+50))
figure
plot(x,y,x(imax-50:imax+50),y(imax-50:imax+50),'r')
Mind that the areas are both negative because your curve is almost all below the x axis.
2 comentarios
Haris Ashraf
el 11 de Abr. de 2022
Davide Masiello
el 11 de Abr. de 2022
Editada: Davide Masiello
el 11 de Abr. de 2022
No, you can vary that number depending on what you decide your peak is. I have added a plot in my answer to show you what 50 points around the maximum actually encompasses.
Categorías
Más información sobre Descriptive Statistics en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
