ndgrid

Прямоугольная сетка на пробеле N-D

Синтаксис

x1, x2 ,..., Xn] = ndgrid (x1, x2..., xn)
x1, x2 ,..., Xn] = ndgrid (xg)

Описание

пример

x1, x2 ,..., Xn] = ndgrid (x1, x2..., xn) реплицирует векторы сетки x1, x2..., xn, чтобы произвести n-мерную полную сетку.

пример

x1, x2 ,..., Xn] = ndgrid (xg) задает единственный вектор сетки xg, чтобы использовать для всех размерностей. Количество выходных аргументов, которые вы задаете, определяет размерность n вывода.

Примеры

свернуть все

Создайте 2D сетку из векторов [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×6

     1     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×6

     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

Оцените и постройте график функции

по области с координатной сеткой

и.

Создайте сетку значений для области.

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

Выполните функцию по области.

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

Сгенерируйте сетчатый график функции.

mesh(X1,X2,Z)

В R2016b и более поздних релизах, эта задача не требует использования ndgrid. Вместо этого можно создать сетку с помощью неявного расширения с этими командами:

x = -2:.2:2;

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

Создайте 2D сетку и вычислите некоторые значения функции на сетку. Интерполируйте между присвоенными значениями, чтобы совершенствовать сетку.

Создайте крупную сетку для в области значений.

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

Вычислите некоторые значения функции на сетку и постройте график функции.

f = sin(X.^2) * cos(Y.^2);
surf(X,Y,f)

Интерполируйте между точками с помощью более усовершенствованной сетки и постройте график результата.

[X1,Y1] = ndgrid(-5:0.125:5);
F = interpn(X,Y,f,X1,Y1,'spline');
surf(X1,Y1,F)

Входные параметры

свернуть все

Векторы сетки, заданные как векторы, содержащие декартовы координаты для каждой размерности. Векторы сетки неявно задают сетку. Например, в 2D:

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Вектор сетки для всех размерностей, заданных как вектор, содержащий декартовы координаты. ndgrid использует xg в качестве вектора сетки для каждой размерности.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Поддержка комплексного числа: Да

Выходные аргументы

свернуть все

Полное представление сетки, возвращенное как отдельные массивы. Для каждого выходного массива Xi i th размерность содержит копии вектора сетки xi.

Советы

  • Функция ndgrid подобна meshgrid. Однако ndgrid поддерживает 1D к N-D, в то время как meshgrid ограничивается 2D и 3-D.

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.

Представлено до R2006a

Была ли эта тема полезной?