线和曲线之间的区域(无功能)

时间:2016-07-17 12:54:57

标签: matlab plot matlab-figure area curve

我想计算橙色和蓝色线之间的区域。我设法遮住了这个区域。但我不知道如何应用trapz函数来获得该区域。在这篇文章中:Area under surface between two curves我得到了一些解决方案,但我没有一个特定的曲线方程,只是曲线本身。

橙色线的代码是:

x_1 = [0,M1_1];
y_1 = [c1,c1];
v = plot(x_1,y_1,'LineWidth',2)

蓝色曲线是长度为(10000x1)-abissa和(1x10000)-ordinate的数组图。

如果我使用

%c0_1: Intersection blue curve with y-axis
%c1_1: Intersection orange curve with y-axis
A = trapz(ab1(0:c1_1),ab_y1(c1_1:c0_1))

我收到以下错误:

  

警告:冒号运算符在使用时需要整数操作数   index警告:冒号操作符需要整数操作数   用作索引使用trapz的错误(第58行)LENGTH(X)必须等于   在昏暗的2中Y的长度。

如何轻松地将trapz功能应用于我的问题?

enter image description here

1 个答案:

答案 0 :(得分:1)

这是一个答案,虽然我不确定这里的情况和here之间有什么区别,因此我不确定它是否真的回答了你的问题...

无论如何,你不需要明确地了解y1功能,只是为了拥有它的功能。系列数据。

x = 0:0.1:12;       % x data
y1 = 3*exp(-0.5*x); % y data
y2 = 0.5;
lineStart = find(x>=0,1);
lineEnd = find(y1<=y2,1);
f = plot(x,y1,'b',x,ones(1,length(x))*y2,'r','LineWidth',2);
ylim([0 4])
hold on
area(x(lineStart:lineEnd),y1(lineStart:lineEnd), y2,...
    'EdgeColor', 'none', 'FaceColor', [0.5 0.5 1],'ShowBaseLine','off')
hold off
A = trapz(x(lineStart:lineEnd),y1(lineStart:lineEnd));

我还添加了综合区域的图示: Integrating between y1 and y2

告诉我是解决问题;)