MATLAB中的meshgrid和ndgrid
在 MATLAB 中, meshgrid 和 ndgrid 都是用来将一维向量转换为多维网格矩阵的函数, 以便计算二元或多元函数(如 z = f ( x , y ) z = f(x, y) z=f(x,y)). 虽然它们生成的坐标点组合是完全一样的, 但在矩阵的维度排列顺序上却截然不同.
matlab
% 定义两个一维向量
x = [1, 2, 3]; % 长度为 3 (代表 x 轴坐标)
y = [4, 5]; % 长度为 2 (代表 y 轴坐标)
% -------------------------
% 1. 使用 meshgrid
% -------------------------
[X_mesh, Y_mesh] = meshgrid(x, y);
% -------------------------
% 2. 使用 ndgrid
% -------------------------
[X_nd, Y_nd] = ndgrid(x, y);
运行结果
cmd
>> X_mesh
X_mesh =
1 2 3
1 2 3
>> Y_mesh
Y_mesh =
4 4 4
5 5 5
cmd
>> X_nd
X_nd =
1 1
2 2
3 3
>> Y_nd
Y_nd =
4 5
4 5
4 5
输出结果对比
meshgrid 的输出结果:
生成的矩阵大小是 2 × 3 (即 length(y) × length(x)).
X_mesh 的每一行都是向量 x 的复制.
Y_mesh 的每一列都是向量 y 的复制.
ndgrid 的输出结果:
生成的矩阵大小是 3 × 2 (即 length(x) × length(y)).
X_nd 的每一列都是向量 x 的复制.
Y_nd 的每一行都是向量 y 的复制.