matlab plot3 用法

欲绘制如图3维函数图
写代码如下
x=-200:0.3:200;y=-200:0.1:200;plot3(x,y,x*y/sqrt(x*x+y*y))
为何报错
??? Error using ==> mtimes
Inner matrix dimensions must agree.
MATLAB版本是7.1

%plot3(x,y,z)用来绘制3维曲线图,而不能绘制曲面图!就是把所有的
%(x,y,z)点连接在一起。而画曲面图必须用surf和mesh函数,而这两个
%函数都需要知道对应x,y向量交叉点内所有点处的z值,所以得用
%x=-200:0.3:200;y=-200:0.1:200;
%[X,Y]=meshgrid(x,y);
%Z=X.*Y/sqrt(X.*X+Y.*Y)
%获得z值,再用mesh(X, Y, Z);绘曲面图 ,下面为代码
x=-200:0.3:200;y=-200:0.1:200;
[X,Y]=meshgrid(x,y);
Z=X.*Y./sqrt(X.*X+Y.*Y);
mesh(X,Y,Z)
%希望能解决你的问题!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-20
matlab中文名称矩阵实验室,顾名思义,它是以矩阵运算为基础的,所以它的运算跟mathematica、maple之类的数学软件是不一样的。
plot3是绘制三维图形的一个基本命令,其基本形式为plot(x,y,z),x,y须我们自己定义其范围,是一个等长的一维数组,注意必须是等长的,所以上面x的步长0.3应该调整为跟y的步长值相等的数,“Inner matrix dimensions must agree”就指出了这个错误,当然也可以是一个二维数组,这样就得借助meshgrid函数构建网格。
当然改过后还是不对,为什么?x,y是数组,那么数组之间的运算必须是点运算,即“.*”“./”“/.”“.^”等,所以上面的仍需改。下面我给出一个参考代码,
>> x=-200:0.3:200;y=200:-0.3:-200;
>> z=x.*y./sqrt(x.^2+y.^2);
>>[X,Y]=meshgrid(x,y);
>>Z=X.*Y./sqrt(X.^2+Y.^2);
>> plot3(X,Y,Z)
你可以调试一下……
第2个回答  2019-07-29
plot、plot3这几个函数都是按照“点”来绘图的,你的这个实际上是给了5个点的坐标。
比如第一个点是(x,y,z),第三个点是(x+1000,y-1000,z);默认情况下是把点连成线,可以更改参数,比如画点而不连线之类的。
第3个回答  2010-05-20
二楼正解
第4个回答  2010-05-20
你要画三维图 却只有两个变量 你说能画出来么