加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

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

(2013-04-04 19:25:44)
标签:

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

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有