I am trying to find the area as a part of a graph(Area-A and Area-B in the picture below). However, when I am using "trapz" function, it is not giving any output. Code is mentioned below and .mat file is attached. Please help me out.

1 次查看(过去 30 天)
clc;
a=importdata('anirban normal.mat');
b=a.data;
x=b(22810:25750,1);
figure();
plot(x);
Area=trapz(1:694);
x(x<0)=[];
findpeaks(x);
findpeaks(x,'MinPeakHeight',0.927);*

采纳的回答

KSSV
KSSV 2017-3-13
编辑:KSSV 2017-3-13
a=importdata('anirban normal.mat');
b=a.data;
x=b(22810:25750,1);
figure();
plot(x);
% Area=trapz(1:694);
id = 1:length(x) ;
% Int = trapz(id,x) ;
% x(x<0)=[];
% findpeaks(x);
% findpeaks(x,'MinPeakHeight',0.927);
[val,maxid] = max(x) ;
Area1 = trapz(id(1:maxid),x(1:maxid)) ;
Area2 = trapz(id(maxid:end),x(maxid:end)) ;
Area = trapz(id,x) ;
Check Area = Area1+Area2
  3 个评论
Biswarup  Dutta
Biswarup Dutta 2017-3-15
Hello KSSV, area is derived. Thanks for your help. Is there any way to select Area 1 and Area 2, paint it with different colors using matlab code. I have tried something like that but it does not work:
clc
a=importdata('robin roy.mat');
b=a.data;
x=b(22000:25830,1);
plot(x);
x(x<0)=[];
findpeaks(x);
findpeaks(x,'MinPeakHeight',1.15);
Area1 = trapz(id(1:447),x(1:447)) ;
Area2 = trapz(id(447:1815),x(447:1815)) ;
hold on
ha1 = area(x(x<=447), y(x<=447), 'FaceColor','g');
ha2 = area([447 x0], [y(x == 447) 0], 'FaceColor','r');
hold off
A1str = sprintf('Area 1 = %6.3f', Area1);
A2str = sprintf('Area 2 = %6.3f', Area2);
legend([ha1 ha2], A1str, A2str)
I have uploaded the .mat file. The graph is similar to above one, I have attached.

请先登录,再进行评论。

更多回答(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