matlab出现了Error using ==> times Matrix dimensions must agree.程序怎么改啊,呜呜?这是我的程序s=0:2*pi;t=0:pi;r=10000;x=r.*cos(s);y=r.*sin(s).*cos(t);z=r.*sin(s).*cos(t);surf(x,y,z);[x,y,z] = sphere(30);grid on;shading flat;axis equal
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/18 22:23:03
matlab出现了Error using ==> times Matrix dimensions must agree.程序怎么改啊,呜呜?这是我的程序s=0:2*pi;t=0:pi;r=10000;x=r.*cos(s);y=r.*sin(s).*cos(t);z=r.*sin(s).*cos(t);surf(x,y,z);[x,y,z] = sphere(30);grid on;shading flat;axis equal
matlab出现了Error using ==> times Matrix dimensions must agree.程序怎么改啊,呜呜?
这是我的程序
s=0:2*pi;
t=0:pi;
r=10000;
x=r.*cos(s);
y=r.*sin(s).*cos(t);
z=r.*sin(s).*cos(t);
surf(x,y,z);
[x,y,z] = sphere(30);
grid on;
shading flat;
axis equal
matlab出现了Error using ==> times Matrix dimensions must agree.程序怎么改啊,呜呜?这是我的程序s=0:2*pi;t=0:pi;r=10000;x=r.*cos(s);y=r.*sin(s).*cos(t);z=r.*sin(s).*cos(t);surf(x,y,z);[x,y,z] = sphere(30);grid on;shading flat;axis equal
很明显是逻辑错误.
s 是0:2*pi ; t 是0:pi 他们都是默认步长 那么 s 比 t 长一倍(解释的有点俗)
但是这里
y=r.*sin(s).*cos(t);
z=r.*sin(s).*cos(t);
因为 s 和 t 的原因 sin(s) 和 cos(t)值的个数不一样(就是序列长度不一致),所以没法乘,所以报错.
解决办法:
办法就是让 s 和 t 序列长度一致,可以改步长,比如s=0:0.01:2*pi; t=0:0.005:pi; 那么现在就可以了.
ps:没试过,只是大体看了一下有这个错误,改过来之后如果还不对请再问.
希望可以帮到你