5.4 四维图形

MATLAB除了可以绘制二维、三维数据图形外,还可以绘制四维图形。本小节将描述如何表达和绘制四维图。

5.4.1 第四维表达

前面介绍的mesh和surf等命令除了使用三维数据外,还使用了一个颜色数据。在未给出颜色参量的情况下,图像的颜色是沿着z轴数据变化的,但该颜色也可以由其他数据来决定。如果用颜色表示第四维数据,那么就能够绘制出四维图。

MATLAB表达四维图的方式正是采用颜色来表现第四维数据。这样通过不同的颜色就能够很好地将四维数据在二维平面上表现出来。

例5-16,使用颜色描述第四维示例。

在命令行窗口输入:

    [X, Y, Z]=peaks(60);
    R = sqrt(X.^2+Y.^2)+eps;
    subplot(121); surf(X, Y, Z, Z); axis tight     %见图5.16左图
    subplot(122); surf(X, Y, Z, R); axis tight     %见图5.16右图

命令行窗口无输出。得到的图形如图5.16所示。

图5.16 使用颜色描述第四维示例

提示

左图与默认情况相同,使用z轴数据控制颜色;右图则采用了第四维数据R。

5.4.2 四维图绘制

从前文可以看到surf命令可以将第四维数据使用颜色表示,从而绘制四维图,而mesh命令同surf命令一样,也可以绘制四维图。

除了surf命令和mesh命令外,slice命令也可以绘制四维图。该函数常用的调用格式如下:

    slice(V, sx, sy, sz)
    slice(X, Y, Z, V, sx, sy, sz)
    slice(V, XI, YI, ZI)
    slice(X, Y, Z, V, XI, YI, ZI)

其功能为显示三元函数V=V(X, Y, Z)确定的立体形状在x轴、y轴、z轴方向上的若干点的切片图,各点的坐标由数量向量sx、sy、sz指定,其中V为m×n×p的三维数组。默认情况下:X=1:m、Y=1:n、Z=1:p;参量XI、YI、ZI定义了一个面,在面上的点将会计算颜色值。

例5-17,四维图绘制示例。

在命令行窗口输入:

    [x1, y1] = meshgrid(-1:.05:1);
    [x2, y2, z2] = meshgrid(-1:.05:1, -1:.05:1, -1:.05:1);
    z1= sqrt(2-x1.^2+y1.^2);
    v1= exp(-x1.^2-y1.^2-z1.^2);
    v2 = x2.*exp(-x2.^2-y2.^2-z2.^2);
    subplot(131); surf(x1, y1, z1, v1)                             %见图5.17左图
    subplot(132); mesh(x1, y1, z1, v1)                             %见图5.17中图
    xslice = [-0.6, .4,1]; yslice = 1; zslice = [-1,0];
    subplot(133); slice(x2, y2, z2, v2, xslice, yslice, zslice); colormap hsv     %见图5.17
右图

命令行窗口无输出。得到的图形如图5.17所示。

图5.17 四维图绘制示例