MATLAB根据已知点画的椭圆为什么会不完整?

根据椭圆公式ax2+bxy+cy2+dx+ey+f=0,系数(a,b,c,d,e,f)放在一个矩阵里(a)且已知,现有几组(x,y),根据(x,y)画椭圆,画出来的不完整... 根据椭圆公式ax2+bxy+cy2+dx+ey+f=0,系数(a,b,c,d,e,f)放在一个矩阵里(a)且已知,现有几组(x,y),根据(x,y)画椭圆,画出来的不完整,如图。是我的程序有问题吗?各位大神看看是怎么回事,能怎么改?

a =
-0.0082 -0.0066 -0.0120 0.1549 0.1693 -0.9732
xd =
5.5000 5.5000 6.0000 6.0000 6.5000 7.0000 7.0000 8.0000 8.0000 8.5000 9.0000 9.0000
yd =
5.0000 6.0000 4.5000 6.5000 4.0000 3.5000 6.5000 3.5000 6.5000 6.0000 3.5000 5.5000

function ellipse_plot(a)fun=@(xd,yd)a(1)*xd.^2+a(2)*xd.*yd+a(3)*yd.^2+a(4)*xd+a(5)*yd+a(6);ezplot(fun);
展开
 我来答
mhz_zhang
2014-01-17 · TA获得超过428个赞
知道答主
回答量:51
采纳率:0%
帮助的人:55.7万
展开全部

这个是由于你的坐标显示范围造成的。更改如下:


a =[ -0.0082

   -0.0066

   -0.0120

    0.1549

    0.1693

   -0.9732];

xd =[5.5000

    5.5000

    6.0000

    6.0000

    6.5000

    7.0000

    7.0000

    8.0000

    8.0000

    8.5000

    9.0000

    9.0000];

yd =[5.0000

    6.0000

    4.5000

    6.5000

    4.0000

    3.5000

    6.5000

    3.5000

    6.5000

    6.0000

    3.5000

    5.5000]; 

fun=@(xd,yd) a(1).*xd.^2+a(2).*xd.*yd+a(3).*yd.^2+a(4).*xd+a(5).*yd+a(6);

ezplot(fun,[0,12,0,12]);

axis equal

效果图如下:

希望解决你的问题,采纳我的答案!

追问
不是坐标轴范围不对的问题,我在调用这个函数前就定义了坐标轴范围,只是为什么不能通用到函数里面,还要重新在函数里面定义呢?
追答
如果你在调用之前设定好了,你需要将该图绘在你设定好的坐标轴上,应该采用如下方式:
ezplot(axes_handle,...),%其中axes_handle是你事先定义的坐标轴句柄,如果不指定,系统会自动绘制于默认的坐标轴(这个坐标轴的属性可能将你事先定义的属性覆盖掉),不一定会放置于你事先定义的坐标轴。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式