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

Matlab使用-三维图像绘制

  • Matlab代码
  • 代码说明
    • meshgrid函数使用
      • 对meshgrid函数的理解
    • 输入函数表达式
      • 注意
    • surf 函数

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使用-简单的三维图像绘制_第1张图片
可以根据自己的需要合理选择向量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使用-简单的三维图像绘制_第2张图片
从上面的点阵结果来看,结果描述了坐标平面上的各个点的坐标。

输入函数表达式

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

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

注意

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

surf 函数

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

你可能感兴趣的:(Matlab使用-简单的三维图像绘制)