如何使用Matlab绘制椭圆体

时间:2017-03-22 03:52:42

标签: matlab

我可以使用此方法在Matlab中绘制椭球: Xc是中心的x坐标,Xr是椭圆体在x方向上的长度的一半

Xc = 0; Xr = 1;
Yc = 0; Yr = 2;
Zc = 0; Zr = 3;

[X Y Z] = ellipsoid(Xc, Yc, Zc, Xr, Yr, Zr);
surf(X,Y,Z);

这可以给我一个椭圆体的三维图像,但如果我不知道像Xc或Xr这样的东西,我所知道的只是一个函数:

A = 5; B = 0; C =2;
D = 2; E = 1;

P = [A B;
     B C];

q = [D E];

syms x y;

f = [x y] * P * [x y]' + q * [x y] + 1;

但似乎冲浪不允许使用syms变量。 ezplot(f)只给出一个二维椭圆。

如何使用冲浪,网格或其他任何东西在Matlab中绘制具有此功能的三维椭球?

我写这个函数f的原因是我想看看矩阵P的正定性和负定性如何影响函数f的图像。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用isosurface绘制椭圆体(或任何其他隐式曲面)。例如,椭圆体 可以使用以下代码绘制2*x^2+2xy+3y^2+2yz+4z^2+4z-1=0

[x,y,z]= meshgrid(-2:0.05:2); % the surface should fit in the meshgrid area
v= 2*x.^2+2*x.*y+3*y.^2+2*y.*z+4*z.^2+4*z-1; % the left side of the equation
isosurface(x,y,z,v,0); % the value 0 is the right hand side of the equation
axis tight