matlab如何用ezplot画带条件限制的隐函数

问题描述: 今天同学问了我一个问题,怎么画出带有 x > y x > y x>y条件(1)限制的隐函数 f ( x , y ) f(x,y) f(x,y)
问题如下图
在这里插入图片描述
百度了很久,没有找到很棒的回答,经过很多文档、博客的拼凑,最终摸索出来了解决这个问题的方法。
解决方法:
方法一:

h = ezplot('x*(4*x-7*y)-y^2*(4*x^2-2*y^2+3*x*y)',[0,2]);
xy=get(h,'ContourMatrix'); #从图像h获取数据以矩阵形式存放到xy中
x = xy(1,1:end); #将矩阵xy的x轴方向的点存放到向量x中
y = xy(2,1:end); #将矩阵xy的y轴方向的点存放到向量y中
indx = (find(x>y)); #找到满足限制条件x>y的点,其序号放到indx中
figure;
plot(x(indx),y(indx)); #画出满足条件的点
axis([0,2,0,2]);

如下图所示:
在这里插入图片描述
那么,如果限制条件不止一个呢? 比如说上面的问题,再加一个条件(2) y > 0.4 x y>0.4x y>0.4x ,可以这样干:

h = ezplot('x*(4*x-7*y)-y^2*(4*x^2-2*y^2+3*x*y)',[0,2]);
xy=get(h,'ContourMatrix');
x = xy(1,1:end);
y = xy(2,1:end);
indx = (find(x>y));
indx2 = (find(y(indx) > 0.4*x(indx))); #在满足条件1的点中,找到满足条件2的点,放到indx2中
figure;
plot(x(indx2),y(indx2)); #画出两个条件都满足的点
axis([0,2,0,2]);

如下图所示:

在这里插入图片描述
方法二:
如果图不是在很正式的场合使用,画图应该是怎么速度快怎么来。像这个小问题,我花了一个多小时才解决,在做有时间限制项目时是不可取的,最简单的方法是,直接把原图中上面一条线p掉,简单痛快,效果没毛病,下面这张是p出来的,当然这得在不伪造数据的原则下才能干:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值