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); 展开
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); 展开
1个回答
展开全部
这个是由于你的坐标显示范围造成的。更改如下:
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是你事先定义的坐标轴句柄,如果不指定,系统会自动绘制于默认的坐标轴(这个坐标轴的属性可能将你事先定义的属性覆盖掉),不一定会放置于你事先定义的坐标轴。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询