matlab的三维画图 想画一个球 方程是x^2+y^2+z^2=100; 那么怎么画呢?程序如下:>> x=[-10:0.5:10];>>y=sqrt(100-x.^2);>> [x,y]=meshgrid(x,y);>> z=sqrt(100-(x.^2+y.^2));>> surf(x,y,z)Error using ==> surf at 78X,Y,Z,and C cannot be com
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/28 11:09:12
![matlab的三维画图 想画一个球 方程是x^2+y^2+z^2=100; 那么怎么画呢?程序如下:>> x=[-10:0.5:10];>>y=sqrt(100-x.^2);>> [x,y]=meshgrid(x,y);>> z=sqrt(100-(x.^2+y.^2));>> surf(x,y,z)Error using ==> surf at 78X,Y,Z,and C cannot be com](/uploads/image/z/1157009-41-9.jpg?t=matlab%E7%9A%84%E4%B8%89%E7%BB%B4%E7%94%BB%E5%9B%BE+%E6%83%B3%E7%94%BB%E4%B8%80%E4%B8%AA%E7%90%83+%E6%96%B9%E7%A8%8B%E6%98%AFx%5E2%2By%5E2%2Bz%5E2%3D100%3B+%E9%82%A3%E4%B9%88%E6%80%8E%E4%B9%88%E7%94%BB%E5%91%A2%3F%E7%A8%8B%E5%BA%8F%E5%A6%82%E4%B8%8B%EF%BC%9A%3E%3E+x%3D%5B-10%3A0.5%3A10%5D%3B%3E%3Ey%3Dsqrt%28100-x.%5E2%29%3B%3E%3E+%5Bx%2Cy%5D%3Dmeshgrid%28x%2Cy%29%3B%3E%3E+z%3Dsqrt%28100-%28x.%5E2%2By.%5E2%29%29%3B%3E%3E+surf%28x%2Cy%2Cz%29Error+using+%3D%3D%3E+surf+at+78X%2CY%2CZ%2Cand+C+cannot+be+com)
matlab的三维画图 想画一个球 方程是x^2+y^2+z^2=100; 那么怎么画呢?程序如下:>> x=[-10:0.5:10];>>y=sqrt(100-x.^2);>> [x,y]=meshgrid(x,y);>> z=sqrt(100-(x.^2+y.^2));>> surf(x,y,z)Error using ==> surf at 78X,Y,Z,and C cannot be com
matlab的三维画图 想画一个球 方程是x^2+y^2+z^2=100; 那么怎么画呢?
程序如下:
>> x=[-10:0.5:10];
>>y=sqrt(100-x.^2);
>> [x,y]=meshgrid(x,y);
>> z=sqrt(100-(x.^2+y.^2));
>> surf(x,y,z)
Error using ==> surf at 78
X,Y,Z,and C cannot be complex.
这样就出错了!
如果Y也y=[-10:0.5:10];会导致取值x=10,y=10.而球的方程是不可能的
matlab的三维画图 想画一个球 方程是x^2+y^2+z^2=100; 那么怎么画呢?程序如下:>> x=[-10:0.5:10];>>y=sqrt(100-x.^2);>> [x,y]=meshgrid(x,y);>> z=sqrt(100-(x.^2+y.^2));>> surf(x,y,z)Error using ==> surf at 78X,Y,Z,and C cannot be com
画球体的方法很多,比如用sphere函数,程序如下:
clear;
clc;
[x,y,z]=sphere(100);
x=10*x;
y=10*y;
z=10*z;
surf(x,y,z)
xlabel('x')
ylabel('y')
zlabel('z')
axis equal
也许你会想问如果球心不在原点怎么办,方法如下:
x0=0;y0=0;z0=0; % 设定球心
r=10; % 设定半径
%下面开始画
[x,y,z]=sphere(50); % 参数可缺省
mesh(r*x+x0,r*y+y0,r*z+z0)
axis equal
哥们 你的错误出在第四行,
z=sqrt(100-(x.^2+y.^2));
当x=5时,100-(5^2+8.6603^2)为负数,但matlab中sqrt函数自变量为负值不显示错误,而是输出一个复数,但绘图是不认复数的,所以出错。
你的问题是x在正负5的某一段区间内第四行有复数产生,绘图出现错误。
X, Y, Z, and C cannot be c...
全部展开
哥们 你的错误出在第四行,
z=sqrt(100-(x.^2+y.^2));
当x=5时,100-(5^2+8.6603^2)为负数,但matlab中sqrt函数自变量为负值不显示错误,而是输出一个复数,但绘图是不认复数的,所以出错。
你的问题是x在正负5的某一段区间内第四行有复数产生,绘图出现错误。
X, Y, Z, and C cannot be complex.
意识是X,Y,Z不能为复数。
正确的代码已经贴出来了,我就不重复了。
收起
[x,y,z]=sphere(50);
surf(10*x,10*y,10*z)
shading interp