Using trapz to calculate the area under part of the whole pulse where y is not zero
8 次查看(过去 30 天)
显示 更早的评论
Hey,
I am trying to calculate the area under the pulse between the two specified minima shown in the picture from the whole pulse. I am wondering is it correct to use trapz here although one of the two specified points doesn't have y=0?
Thanks in advance!
0 个评论
采纳的回答
Robert Daly
2023-5-4
移动:Mathieu NOE
2023-5-4
I would run traps on the peak data set between the two end points.
Then I would run traps using a line between the two endpoints to represent the baseline then subtract that from the first result.
peak.x = [1:10]
peak.y = [2,3,6,20,25,26,20,5,2,1]
figure
plot(peak.x,peak.y)
baseline = interp1(peak.x([1,end]),peak.y([1,end]),peak.x) %interpolate a striaght line between the first and last data points in the peak
hold on
plot(peak.x,baseline)
PeakArea = trapz(peak.x,peak.y) - trapz(peak.x,baseline)
3 个评论
Robert Daly
2023-5-5
编辑:Robert Daly
2023-5-5
trapz(peak.x,peak.y)
will calculate the area under the curve between 0 and the curve.
It doesn't matter if the data doesn't start at zero it will still work (maybe this is what you were asking?). The results will be the area in yellow below.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1375419/image.png)
trapz(peak.x,peak.y) - trapz(peak.x,baseline)
What my example will give you is the area in yellow below. This is commonly what gets done in chemistry for things like integrating peaks in chromatography (this is what I thought you were asking). It ignores the area in below the baseline.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1375424/image.png)
Chen Klein
2024-1-18
Hey, if my signal has also negative values, will it only calculate the area from the positive values to 0 (on Y-Axes) ? or it will calculate the whole area under the pulse as you showed here ?
更多回答(0 个)
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!