Skip to content

ndgrid

Creating grid points for evaluating multivariate functions

[X1, X2, ..., Xn] = ndgrid(x)

  • The input x should be a vector. Otherwise, it will be first reshaped to a vector.
  • It returns matrices X1, X2, ..., Xn of identical sizes, which can be used to evaluate a function of n variables.
  • The output matrices are all empty, if x is empty.

[X1,X2, ..., Xn] = ndgrid(x1, x2, ..., xn)

  • The inputs x1, x2 and xn should be vectors. If any of them is not, it will be first reshaped to a vector.
  • It returns matrices X1, X2, ..., Xn of identical sizes, which can be used to evaluate a function of n variables.
  • The output matrices are all empty, if any of x1, x2, ..., xn is empty.

Example: Evaluating a function of 3 variables with grid points generated by ndgrid.

[X1,X2,X3]=ndgrid(-2:2)
F=X1.^2+X2.^2+X3.^2
X1(:, :, 1) = 

-2.000  -2.000  -2.000  -2.000  -2.000
-1.000  -1.000  -1.000  -1.000  -1.000
 0.000   0.000   0.000   0.000   0.000
 1.000   1.000   1.000   1.000   1.000
 2.000   2.000   2.000   2.000   2.000

X1(:, :, 2) = 

-2.000  -2.000  -2.000  -2.000  -2.000
-1.000  -1.000  -1.000  -1.000  -1.000
 0.000   0.000   0.000   0.000   0.000
 1.000   1.000   1.000   1.000   1.000
 2.000   2.000   2.000   2.000   2.000

X1(:, :, 3) = 

-2.000  -2.000  -2.000  -2.000  -2.000
-1.000  -1.000  -1.000  -1.000  -1.000
 0.000   0.000   0.000   0.000   0.000
 1.000   1.000   1.000   1.000   1.000
 2.000   2.000   2.000   2.000   2.000

X1(:, :, 4) = 

-2.000  -2.000  -2.000  -2.000  -2.000
-1.000  -1.000  -1.000  -1.000  -1.000
 0.000   0.000   0.000   0.000   0.000
 1.000   1.000   1.000   1.000   1.000
 2.000   2.000   2.000   2.000   2.000

X1(:, :, 5) = 

-2.000  -2.000  -2.000  -2.000  -2.000
-1.000  -1.000  -1.000  -1.000  -1.000
 0.000   0.000   0.000   0.000   0.000
 1.000   1.000   1.000   1.000   1.000
 2.000   2.000   2.000   2.000   2.000

X2(:, :, 1) = 

-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000

X2(:, :, 2) = 

-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000

X2(:, :, 3) = 

-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000

X2(:, :, 4) = 

-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000

X2(:, :, 5) = 

-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000
-2.000  -1.000   0.000   1.000   2.000

X3(:, :, 1) = 

-2.000  -2.000  -2.000  -2.000  -2.000
-2.000  -2.000  -2.000  -2.000  -2.000
-2.000  -2.000  -2.000  -2.000  -2.000
-2.000  -2.000  -2.000  -2.000  -2.000
-2.000  -2.000  -2.000  -2.000  -2.000

X3(:, :, 2) = 

-1.000  -1.000  -1.000  -1.000  -1.000
-1.000  -1.000  -1.000  -1.000  -1.000
-1.000  -1.000  -1.000  -1.000  -1.000
-1.000  -1.000  -1.000  -1.000  -1.000
-1.000  -1.000  -1.000  -1.000  -1.000

X3(:, :, 3) = 

 0.000   0.000   0.000   0.000   0.000
 0.000   0.000   0.000   0.000   0.000
 0.000   0.000   0.000   0.000   0.000
 0.000   0.000   0.000   0.000   0.000
 0.000   0.000   0.000   0.000   0.000

X3(:, :, 4) = 

 1.000   1.000   1.000   1.000   1.000
 1.000   1.000   1.000   1.000   1.000
 1.000   1.000   1.000   1.000   1.000
 1.000   1.000   1.000   1.000   1.000
 1.000   1.000   1.000   1.000   1.000

X3(:, :, 5) = 

 2.000   2.000   2.000   2.000   2.000
 2.000   2.000   2.000   2.000   2.000
 2.000   2.000   2.000   2.000   2.000
 2.000   2.000   2.000   2.000   2.000
 2.000   2.000   2.000   2.000   2.000

F(:, :, 1) = 

 12.00   9.000   8.000   9.000   12.00
 9.000   6.000   5.000   6.000   9.000
 8.000   5.000   4.000   5.000   8.000
 9.000   6.000   5.000   6.000   9.000
 12.00   9.000   8.000   9.000   12.00

F(:, :, 2) = 

 9.000   6.000   5.000   6.000   9.000
 6.000   3.000   2.000   3.000   6.000
 5.000   2.000   1.000   2.000   5.000
 6.000   3.000   2.000   3.000   6.000
 9.000   6.000   5.000   6.000   9.000

F(:, :, 3) = 

 8.000   5.000   4.000   5.000   8.000
 5.000   2.000   1.000   2.000   5.000
 4.000   1.000   0.000   1.000   4.000
 5.000   2.000   1.000   2.000   5.000
 8.000   5.000   4.000   5.000   8.000

F(:, :, 4) = 

 9.000   6.000   5.000   6.000   9.000
 6.000   3.000   2.000   3.000   6.000
 5.000   2.000   1.000   2.000   5.000
 6.000   3.000   2.000   3.000   6.000
 9.000   6.000   5.000   6.000   9.000

F(:, :, 5) = 

 12.00   9.000   8.000   9.000   12.00
 9.000   6.000   5.000   6.000   9.000
 8.000   5.000   4.000   5.000   8.000
 9.000   6.000   5.000   6.000   9.000
 12.00   9.000   8.000   9.000   12.00