主要内容

meshgrid

2-D和3-D网格

描述

例子

XY=网格(xy返回基于向量中包含的坐标的二维网格坐标x而且yX矩阵的每一行都是一个副本吗x,Y矩阵的每一列都是它的副本吗y.由坐标表示的网格X而且Y长度(y)行和长度(x)列。

例子

XY=网格(x[X,Y] = meshgrid(X, X),返回带有网格大小的正方形网格坐标长度(x)——- - - - - -长度(x)

例子

XYZ=网格(xyz返回由向量定义的三维网格坐标xy,z.网格表示为XY,Z有大小长度(y)——- - - - - -长度(x)——- - - - - -长度(z)

例子

XYZ=网格(x[X,Y,Z] = meshgrid(X, X, X),返回带有网格大小的三维网格坐标长度(x)——- - - - - -长度(x)——- - - - - -长度(x)

例子

全部折叠

创建2-D网格坐标x-由vector定义的坐标x而且y-由vector定义的坐标y

X = 1:3;Y = 1:5;[X,Y] = meshgrid(X,Y)
X =5×31 2 3 1 2 3 1 2 3 1 2 3 1 2 3
Y =5×31 1 1 2 2 2 3 3 3 4 4 4 5 5 5 5

对表达式求值 x 2 + y 2 在二维网格上。

x ^2 + y ^2
ans =5×325 10 5 8 13 10 13 18 17 20 25 26 29 34

创建一个均匀间隔的2-D网格x坐标和y-坐标在区间[-2,2]中。

X = -2:0.25:2;Y = x;[X,Y] = meshgrid(X);

计算并绘制函数 f x y x e - x 2 - y 2 在二维网格上。

F = x *exp(-X.²- y .²);冲浪(X, Y, F)

图中包含一个轴对象。axis对象包含一个surface类型的对象。

从R2016b开始,在操作网格之前并不总是需要创建网格。例如,计算表达式 x e - x 2 - y 2 隐式展开向量x而且y.有关隐式展开的更多信息,请参见数组运算与矩阵运算

冲浪(x, y, x。* exp (- x ^ 2 - (y) ^ 2))。

图中包含一个轴对象。axis对象包含一个surface类型的对象。

创建三维网格坐标x-,y- - - - - -,z-在区间[0,6]中定义的坐标,并计算表达式 x 2 + y 2 + z 2

X = 0:2:6;Y = 0:1:6;Z = 0:3:6;[X,Y,Z] = meshgrid(X,Y,Z);F = x .²+ y .²+ z .²;

确定网格的大小。这三个坐标向量有不同的长度,形成一个网格点的矩形盒。

gridsize = size(F)
gridsize =1×37 4 3

中定义的坐标,使用单输入语法生成均匀间隔的3-D网格x.新的网格形成了网格点的立方体。

[X,Y,Z] = meshgrid(X);G = x .²+ y .²+ z .²;gridsize =大小(G)
gridsize =1×34 4 4

输入参数

全部折叠

点的x坐标,指定为一个向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

点的y坐标,用向量表示。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

点的z坐标,指定为向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

网格上的x坐标,返回为2-D(两个输入)或3-D数组(三个输入)。

网格上的y坐标,作为二维(两个输入)或三维数组(三个输入)返回。

网格上的z坐标,返回为3-D数组。

更多关于

全部折叠

之间的转换meshgrid而且ndgrid格式

meshgrid而且ndgrid使用不同的输出格式创建网格。具体来说,使用这些函数之一创建的网格的前两个维度在与另一个网格格式进行比较时被交换。一些MATLAB®函数在meshgrid格式,而其他人使用ndgrid格式,因此通常在两种格式之间转换网格。

可以在这些网格格式之间进行转换pagetransposeR2020b)或交换来交换网格数组的前两个维度。例如,创建一个三维网格meshgrid

[X,Y,Z] =网格(1:4,1:3,1:2);

现在转置每个网格数组的前两个维度,将网格转换为ndgrid格式,并将结果与的输出进行比较ndgrid

Xt = pagetranspose(X);Yt = page转置(Y);Zt = pagetranspose(Z);[Xn,Yn,Zn] = ndgrid(1:4,1:3,1:2);isequal(Xt,Xn) & isequal(Yt,Yn) & isequal(Zt,Zn)
Ans =逻辑1

使用pagetranspose相当于在保持其他维度不变的情况下对前两个维度进行排列。也可以使用permute(X,[2 1 3:ndim (X)])

扩展功能

C/ c++代码生成
使用MATLAB®Coder™生成C和c++代码。

GPU代码生成
使用GPU Coder™为NVIDIA®GPU生成CUDA®代码。

版本历史

R2006a之前介绍