Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Matlab绘制椭球体_Matlab - Fatal编程技术网

如何用Matlab绘制椭球体

如何用Matlab绘制椭球体,matlab,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]

我可以使用此方法在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;
但似乎surf不允许使用syms变量。 ezplot(f)只给出一个二维椭圆

如何使用surf、mesh或其他工具在Matlab中使用此函数绘制三维椭球

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

谢谢

可以使用绘制椭球体(或任何其他隐式曲面)。例如,椭球体
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

怎么样
ezsurf
ezplot3
,等等?谢谢,但我最终还是用了下面那家伙说的方法。非常有用,非常感谢。这真的是一个直接的方法来画它。