Matlab 填充曲线下方x轴上方的区域

Matlab 填充曲线下方x轴上方的区域,matlab,Matlab,我想填充x轴上方的区域,曲线下方的区域。我尝试过使用:面片、填充和面积,但所有这些都会导致曲线下方x轴上方的区域填充,以及曲线上方x轴下方的区域填充。考虑这个例子: t = 1:1024; y = sin(t); area(t, y) axis([0,50,-2,2]); 我只希望顶部的摆动被着色,而不是x=0以下的底部摆动 我看到一些代码定义了两条边界曲线,但这也不起作用,即,我仍然得到与面积、面片和填充相同的结果。代码是: x = linspace(kokler(1),kokler(2))

我想填充x轴上方的区域,曲线下方的区域。我尝试过使用:面片、填充和面积,但所有这些都会导致曲线下方x轴上方的区域填充,以及曲线上方x轴下方的区域填充。考虑这个例子:

t = 1:1024;
y = sin(t);
area(t, y)
axis([0,50,-2,2]);
我只希望顶部的摆动被着色,而不是x=0以下的底部摆动

我看到一些代码定义了两条边界曲线,但这也不起作用,即,我仍然得到与面积、面片和填充相同的结果。代码是:

x = linspace(kokler(1),kokler(2)); % 100 points between intersections  
yy1 =x.^2; %lower function
yy2 = -(x.^2-16); % upper function
x = [x,x];        % repeat x values
yy = [yy1,yy2];   % vector of upper & lower boundaries
fill(x,yy,'b')    % fill area defined by x & yy in blue
可以对其中任何一个进行修改吗?

试试这个

figure,
t = 1:0.1:10*pi;
y = sin(t);
plot(t, y);

hold on;
y2 = y;
y2(y2 < 0) = 0;

area(t, y2);
图,
t=1:0.1:10*pi;
y=sin(t);
图(t,y);
等等
y2=y;
y2(y2<0)=0;
面积(t,y2);