作业帮 > 综合 > 作业

matlab 为什么会出现Z must be a matrix,not a scalar or vector

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/09/23 09:37:07
matlab 为什么会出现Z must be a matrix,not a scalar or vector
for i=2:1:5
Xp(i)=R*cos(200*i)-(R1+R3)*cos(13*i);
Yp(i)=R*sin(200*i)+(R1+R3)*sin(13*i);
for j=2:1:i-1
if Xp(i)==Xp(j)&Yp(i)==Yp(j)
Zp(i)=Zp(j)-0.1;
else Zp(i)=8-0.1;
end
end
surf(Xp(i),Yp(i),Zp(i))
hold on
end
matlab 为什么会出现Z must be a matrix,not a scalar or vector
我猜你的代码应该是 surf(Xp(i),Yp(i),Zp(i)) 出错了吧,当x和y为1*10的向量时,则构成了一个10*10的二维平面,因此此时z应该是一个10*10的矩阵,而不是标量或矢量,错误提示:Z must be a matrix,not a scalar or vector 就是这个意思.
再问: 哦哦 谢谢了,讲解的很明白,但是我要怎样修改呢?就是一组X,Y对应一个Z值。 十分感谢您
再答: 把Z定义为一个二维数组,然后用两重循环给Z(i,j)赋值.那么比如x为1*10,y为1*5,那么, for i=1:10 for j=1:5 z(i,j)=…x(i)…y(j);%具体表达式由你自己的需求定 end end 这样就能得到一个10*5的分别与xy一一对应的z数组,再用surf(Xp(i),Yp(i),Zp(i))的时候就不会出错了。