"Subscript indices must either be real positive integers or logicals" error while using trapz function
2 次查看(过去 30 天)
显示 更早的评论
Hello, I am using following code to calculate area under the peak.
D = amplitude(:);
l = 59;
chg(1) = 1;
chg(2) = l;
for k1 = 1:numel(chg)-1
segment_area_1k1(a,j) = trapz(chg(k1:k1+1), D(chg(k1:k1+1)));
end
end
The code upon run shows error "subscript indices must either be real positive integers or logicals". I have attached amplitude data for reference. Can anyone solve this problem?
0 个评论
回答(2 个)
Ameer Hamza
2018-5-19
编辑:Ameer Hamza
2018-5-19
What are the values of a and j? They must be a positive integer. Also if you just want to calculate the area under the curve, then pass an entire vector to trapz()
area = trapz(D);
If you want to get segmented area, you can avoid for loop altogether. A better approach is to do it like this
segmentedArea = diff(cumtrapz(D))
4 个评论
Image Analyst
2018-5-19
Give your complete code, including the code where you read in the data file, and your complete error message, including line numbers and ALL the red text.
Image Analyst
2018-5-19
0 个评论
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!