[原创]Matlab中对图形进行区域填充

标签:
matlab区域填充上下限区间 |
分类: Matlab相关 |
有时,我们需要对图形进行填充,如填充两条曲线之间的区域、在图中用阴影填充某序列上下限之间的区域,在Matlab中,可以用fill函数实现这一目的。
程序示例:
(1)填充两区间之间的区域
x=-5:0.01:5;
ls=length(x);
y1=2*x.^2+12*x+6;
% y1是一个长ls的行向量
y2=3*x.^3-9*x+24; %
y2是一个长ls的行向量
figure;
plot(x,y1,'r-');hold
on;
plot(x,y2,'g-');hold
on;
y1_y2=[y1;y2];
% 是一个2×ls的矩阵,第一行为y1,第二行为y2
maxY1vsY2=max(y1_y2); %
1×ls的是一个行向量,表示y1_y2每一列的最大值,即x相同时、y1与y2的的最大值
minY1vsY2=min(y1_y2); %
1×ls的是一个行向量,表示y1_y2每一列的最小值,即x相同时、y1与y2的的最小值
yForFill=[maxY1vsY2,fliplr(minY1vsY2)];
xForFill=[x,fliplr(x)];
fill(xForFill,yForFill,'c','FaceAlpha',0.5,'EdgeAlpha',1,'EdgeColor','c');
% 填充并设置图形格式
效果如下:
(2)填充某序列上下限之间的区域
x=0:0.01:40;
y=x.^2.*sin(x)+cos(x);
% 某序列值
stdY=std(y);
% y的标准差
y_up=y+3*stdY;
%
y的上限值
y_low=y-3*stdY;
%
y的下限值
figure;
plot(x,y,'r-','LineWidth',2);hold
on;
yForFill=[y_up,fliplr(y_low)];
xForFill=[x,fliplr(x)];
fill(xForFill,yForFill,'c','FaceAlpha',0.5,'EdgeAlpha',1,'EdgeColor','c');
% 填充并设置图形格式
效果如下:
版权所有,转载请声明来源:http://blog.sina.com.cn/s/blog_b3509cfd0101bt4p.html