曲线Matlab下的着色有界区域

时间:2016-04-06 10:31:24

标签: matlab area

我想知道是否有人知道如何为下面的代码着色曲线下方的区域。我尝试使用area(Mu),但这会返回与图表略有不同的阴影区域。

n=1;
a=[0:0.001:4];
A=(a.*n);
B=(n-n.*a);
C=(1-n);
Mu=(-B+sqrt((B.^2)-(4.*A.*C)))./(2.*A);
plot(a,Mu)
xlim([0 4])
ylim([0 .8])

1 个答案:

答案 0 :(得分:4)

你快到了。 area(Mu)使用默认值,在这种情况下,它实际执行area([1:length(Mu)],Mu)。这会给您带来不希望的结果,而area(a,Mu)plot(a,Mu)相同,只是填充0和Mu之间的区域。

使用area(a,Mu)。然后在区域顶部绘制线条,或者只更改区域的边缘。见下面的例子:

n=1;
a=[0:0.001:4];
A=(a.*n);
B=(n-n.*a);
C=(1-n);
Mu=(-B+sqrt((B.^2)-(4.*A.*C)))./(2.*A);
area(a,Mu)
hold on
xlim([0 4])
ylim([0 .8])
plot(a,Mu)