主要内容

ndgrid

N-D空间中的矩形网格

描述

例子

X1, X2,…,Xn= ndgrid(x1, x2,…,xn复制网格向量x1, x2,…,xn产生n-维全网格。

例子

X1, X2,…,Xn= ndgrid(xg指定单个网格向量xg适用于所有尺寸。指定的输出参数的数量决定维数n输出的。

例子

全部折叠

从向量创建一个二维网格[1 3 5 7 9 11 13 15 17 19]而且[2 4 6 8 10 12]

[X,Y] = ndgrid(1:2:19,2:2:12)
X =10×61 1 1 1 1 1 3 3 3 3 3 3 5 5 5 5 5 5 7 7 7 7 7 7 9 9 9 9 9 9 11 11 11 11 11 11 13 13 13 13 13 13 15个15个15个15个15个15 17 17 17 17 17 17日19日19日19日19日19日19
Y =10×62 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 4 6 8 10 12 2 6 8 8 10 12 2 4 6 8 10 6 6 8 10 12 2 4 6 8 8 10 12 2 6 8 8 10 12 2 4 6 8 8 10

计算并绘制函数

xgydF4y2Ba 1 e - xgydF4y2Ba 1 2 - xgydF4y2Ba 2 2

在网格域上

- 2 < xgydF4y2Ba 1 < 2 而且 - 2 < xgydF4y2Ba 2 < 2

为域创建一个值网格。

[X1,X2] = ndgrid(-2:.2:2);

求定义域上的函数。

Z = X1. * exp(-X1。^2 - x2 .^2);

生成函数的网格图。

网格(X1, X2, Z)

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

在R2016b及后续版本中,此任务不需要使用ndgrid。相反,你可以使用这些命令使用隐式展开来构造网格:

X = -2:.2:2;

Z1 = x。' .* exp(-(x.')。^2 - x.^2);

创建一个2-D网格,并在网格上计算一些函数值。在分配的值之间进行插值以细化网格。

创建一个粗网格 xgydF4y2Ba y 在范围内 - 5 5 ]

[X,Y] = ndgrid(-5:0.5:5);

在网格上计算一些函数值,并绘制函数图。

f = sin(x²)* cos(y²);冲浪(X, Y, f)

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

使用更精细的网格在点之间进行插值并绘制结果。

[X1,Y1] = ndgrid(-5:0.125:5);F = interpn(X,Y, F,X1,Y1,样条的);
冲浪(X1, Y1, F)

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

输入参数

全部折叠

网格向量,指定为包含每个维度的网格坐标的向量。网格向量隐式地定义了网格。例如,在二维空间中:

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数支持:金宝app是的

所有维度的网格向量,指定为包含网格坐标的向量。ndgrid使用xg作为每个维度的网格向量。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64
复数支持:金宝app是的

输出参数

全部折叠

完整的网格表示,作为单独的数组返回。对于每个输出数组西,第Th维包含网格向量的副本西

更多关于

全部折叠

之间的转换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++代码。

R2006a之前介绍