How to integrate the area below the peak when I dont have function of the peak?

8 次查看(过去 30 天)
I wanted to integrate the area below the shaded peak as shown in the image. The plot is taken from an experimental data so I dont have a function of my curve. How can I specify the limit and get the area below the shaded peak? The simple "trapz" function output is showing "NaN" and I understand I am not specifying the limits here. Can someone help me here. thank you.
% Integrate area below the peak
plot(AR_T,AR_mwmg) %AR_T and AR_mwmg are data stored in AR_data.mat file
int_AR = trapz(AR_T,AR_mwmg)
  3 个评论

请先登录,再进行评论。

采纳的回答

AndresVar
AndresVar 2022-3-23
编辑:AndresVar 2022-3-23
Use conditional indexing to define the limits of extent for the peak.
clear
load("AR_data.mat")
% remove nan values (why is there a nan at the end?)
idxNotNan = ~isnan(AR_T) & ~isnan(AR_mwmg);
x = AR_T(idxNotNan);
y = AR_mwmg(idxNotNan);
%findpeaks(y,x,'Annotate','extents','WidthReference','halfheight','NPeaks',1,'SortStr','descend');
%[pkY, pkX, pkWidth, pkProm]=findpeaks(y,x,'NPeaks',1,'SortStr','descend')
idxPk = x>210 & x<325; % more or less...
xPk = x(idxPk);
yPk = y(idxPk);
figure;
plot(x,y,LineWidth=2,DisplayName='data')
hold on;
plot(xPk,yPk,'--',LineWidth=2,DisplayName='peak')
legend('show');
AreaFull=trapz(x,y)
AreaFull = 0.1168
AreaPk=trapz(xPk,yPk)
AreaPk = 0.1166

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by