欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Matlab使用-简单的三维图像绘制

程序员文章站 2022-07-13 09:33:33
...

Matlab代码

下面以函数sin(x)*sin(y)为例,展示如何使用Matlab绘制三维图像。

a = [1:5];
b = [2:7];
[X Y] = meshgrid(a, b);
Z = sin(X).*sin(Y);
surf(X, Y, Z);

代码说明

meshgrid函数使用

[X Y] = meshgrid(a, b)

a,b是一维向量,使用meshgrid函数可以根据向量a,b的值返回一个二维的网络,在上面给出的代码示例中,运行之后的结果如下所示:
Matlab使用-简单的三维图像绘制
可以根据自己的需要合理选择向量a,b的取值,例如想要取点更加密集,可以令 a = [1: 0.1 :5],表示a从1到5每隔0.1取一个点;向量b同理。

对meshgrid函数的理解

以上面的a = [1:5]、b = [2:7]为例,返回的X,Y的值如上面所示,可以看出,将X,Y相应的位置的数组成一个坐标,那么得到的坐标矩阵如下:
Matlab使用-简单的三维图像绘制
从上面的点阵结果来看,结果描述了坐标平面上的各个点的坐标。

输入函数表达式

Z = sin(X).*sin(Y);

由于X和Y都为6*5的矩阵,将X、Y对应的数值乘起来即可得到相应的计算结果。

注意

对两个矩阵相应的元素进行乘法需要使用符号【.*】而不是【 *】,因为【*】进行的是矩阵的乘法操作,而不是进行的相应位置的数进行乘法。

surf 函数

将X,Y,Z的值依次填入surf的参数列表中即可得到相应的图形。
Matlab使用-简单的三维图像绘制
上面的代码的运行结果
Matlab使用-简单的三维图像绘制
改变向量的取点间距为0.1得到的图像结果