MATLAB surf 画带填充的曲面,mesh 画网格线框,都用来展示 z=f(x,y)。
语法
surf(X, Y, Z)
mesh(X, Y, Z)第一步:先造网格 meshgrid
画曲面前必须用 meshgrid 生成网格坐标,再算 z:
[X, Y] = meshgrid(-2:0.1:2, -2:0.1:2);
Z = X.^2 + Y.^2; % 抛物面
surf(X, Y, Z)换成 mesh 就是线框版:
[X, Y] = meshgrid(-2:0.1:2);
Z = sin(X) .* cos(Y);
mesh(X, Y, Z)演示用 MATLAB 自带山峰函数 peaks:
[X, Y, Z] = peaks(30);
surf(X, Y, Z)注意事项
- 忘记 meshgrid,或 z 的计算漏了点运算(
X.^2、sin(X).*cos(Y)),是最常见的两个报错来源; - surf 是实体填充面,mesh 是镂空网格,同一数据二者成对出现。