meshgrid
二维和三维网格
说明
示例
二维网格
使用向量 x
定义的 x 坐标和向量 y
定义的 y 坐标创建二维网格坐标。
x = 1:3; y = 1:5; [X,Y] = meshgrid(x,y)
X = 5×3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
Y = 5×3
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
在二维网格上计算表达式 。
X.^2 + Y.^2
ans = 5×3
2 5 10
5 8 13
10 13 18
17 20 25
26 29 34
三维网格
在区间 [0,6] 内使用定义的 x、y 和 z 坐标创建三维网格坐标,并计算表达式 。
x = 0:2:6; y = 0:1:6; z = 0:3:6; [X,Y,Z] = meshgrid(x,y,z); F = X.^2 + Y.^2 + Z.^2;
确定网格的大小。三个坐标向量具有不同的长度,构成一个网格点矩形框。
gridsize = size(F)
gridsize = 1×3
7 4 3
使用单输入语法,基于 x
中定义的坐标生成均匀间隔的三维网格。新网格构成一个网格点正方体。
[X,Y,Z] = meshgrid(x); G = X.^2 + Y.^2 + Z.^2; gridsize = size(G)
gridsize = 1×3
4 4 4
输入参数
x
— 点的 x 坐标
向量
点的 x 坐标,指定为向量。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
y
— 点的 y 坐标
向量
点的 y 坐标,指定为向量。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
z
— 点的 z 坐标
向量
点的 z 坐标,指定为向量。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
输出参量
X
— 网格上的 x 坐标
二维或三维数组
网格上的 x 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。
Y
— 网格上的 y 坐标
二维或三维数组
网格上的 y 坐标,以二维数组(两个输入)或三维数组(三个输入)的形式返回。
Z
— 网格上的 z 坐标
三维数组
网格上的 z 坐标,以三维数组形式返回。
详细信息
在 meshgrid
和 ndgrid
格式之间转换
meshgrid
和 ndgrid
使用不同的输出格式创建网格。具体来说,使用这些函数之一创建的网格的前两个维度在与另一种网格格式进行比较时会发生交换。一些 MATLAB® 函数使用 meshgrid
格式的网格,而另一些函数使用 ndgrid
格式,因此在这两种格式之间转换网格是很常见的。
您可以使用 pagetranspose
(从 R2020b 开始)或 permute
在这些网格格式之间进行转换,以交换网格数组的前两个维度。例如,用 meshgrid
创建一个三维网格。
[X,Y,Z] = meshgrid(1:4,1:3,1:2);
现在转置每个网格数组的前两个维度以将网格转换为 ndgrid
格式,并将结果与 ndgrid
的输出进行比较。
Xt = pagetranspose(X); Yt = pagetranspose(Y); Zt = pagetranspose(Z); [Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2); isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
ans = logical 1
使用 pagetranspose
等效于置换前两个维度,而让其他维度保持不变。您也可以使用 permute(X,[2 1 3:ndims(X)])
执行此运算。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)