matlab三维绘图 |
您所在的位置:网站首页 › matlab画三维函数图像 › matlab三维绘图 |
三维绘图即包含三个变量,通常分为两种: 1)一个独立变量t,两外两个变量x,y随t变化。比如曲线的参数方程描述 2)两个独立变量x,y,第三个变量z随x,y变化。比如z=x^2+y^2 三维绘图函数主要有plot3、mesh、surf、contour,此外还有一些辅助函数meshgrid、alpha等 1.plot3 plot3主要用于三维线绘图,和plot基本一样,区别就是plot3每个点由x,y,z决定,而plot每个点由x,y决定。 t=0:0.1:10; x=cos(2*t); y=sin(2*t); plot3(x,y,t);2.mesh、surf、contour mesh、surf、contour分别用于三维曲面、网格和等高线绘 函数名说明mesh(X,Y,Z)创建网格或线框绘图。X,Y,Z均为2维数据。surf(X,Y,Z)创建曲面绘图。X,Y,Z均为2维数据。contour(X,Y,Z)创建等高线绘图。X,Y,Z均为2维数据。这里需要说下x,y,z。以z=x^2+y^2为例,如果x取-1,0,1三个数,y取-2,-1,0,1,2 五个数,z根据x,y取值计算。 对于上述三个作图函数,X,Y,Z为5*3矩阵数据,矩阵的行数由y的取值个数决定,矩阵的列数由x的取值个数决定。(此处的X,Y,Z不是上面曲线方程的x,y,z,是上面三个作图函数的输入) X每一列相同,并且包含-1,0,1三个取值 -1 0 1 -1 0 1 -1 0 1 -1 0 1 -1 0 1 Y每一行相同,并且包含-2,-1,0,1,1五个取值 -2 -2 -2 -1 -1 -1 0 0 0 1 1 1 2 2 2 Z根据z=x^2+y^2,遍历x,y取值计算即可,同样为5*3矩阵 5 4 5 2 1 2 1 0 1 2 1 2 5 4 5 此时我们将X,Y,Z作为surf,mesh,contour输入作图。 代码如下:代码中我们使用了meshgrid函数,由x,y(向量)得到X,Y(二维矩阵),这个过程自己编程得到也是可以的,用循环或者矩阵赋值repmat都可以(注释掉了的部分)。 x=-1:1:1; y=-2:1:2; [X,Y]=meshgrid(x,y); % X=repmat(x,length(y),1); % Y=repmat(y',1,length(x)); Z=X.^2+Y.^2; figure(1) subplot(311) surf(X,Y,Z); title('网格绘图') subplot(312) mesh(X,Y,Z); title('曲面绘图') subplot(313) contour(X,Y,Z); title('等高线绘图')结果如下 最后有一个alpha(value)函数用来调整透明度,value在0-1之间,value为0为全透明,为1完全不透明。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |