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/12/25 03:58:01
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