Прямоугольная сетка в N-D пространстве
[
реплицирует векторы сетки X1,X2,...,Xn
]
= ndgrid(x1,x2,...,xn
)x1,x2,...,xn
для создания n
-мерная полная сетка.
[
задает один вектор сетки X1,X2,...,Xn
]
= ndgrid(xg
)xg
для использования для всех размерностей. Количество заданных выходных аргументов определяет размерность n
выходного выхода.
Создайте 2-D сетку из векторов [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);
Создайте 2-D сетку и вычислите некоторые значения функций на сетке. Интерполяция между присвоенными значениями для уточнения сетки.
Создайте грубую сетку для в области значений .
[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)
x1,x2,...,xn
- Векторы сетки (как отдельные аргументы)Векторы сетки, заданные как векторы, содержащие координаты сетки для каждой размерности. Векторы сетки неявно определяют сетку. Для примера, в 2-D:
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
xg
- Вектор сетки для всех размерностейВектор сетки для всех размерностей, заданный как вектор, содержащий координаты сетки. ndgrid
использует xg
в качестве вектора сетки для каждой размерности.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Поддержка комплексного числа: Да
X1,X2,...,Xn
- Полное представление сеткиПолное представление сетки, возвращаемое как отдельные массивы. Для каждого выходного массива Xi
, а i
th размерность содержит копии вектора сетки xi
.
meshgrid
и ndgrid
Форматыmeshgrid
и ndgrid
создавать сетки с использованием различных форматов выхода. В частности, первые две размерности сетки, созданной с помощью одной из этих функций, меняются друг на друга по сравнению с другим форматом сетки. Некоторые MATLAB® функции используют сетки в meshgrid
формат, в то время как другие используют ndgrid
формат, поэтому обычно преобразовывать сетки между двумя форматами.
Преобразовать между этими форматами сетки можно используя pagetranspose
(начиная с R2020b) или permute
для замены первых двух размерностей массивов сетки. Например, создайте 3-D сетку с 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)])
.
Указания и ограничения по применению:
Синтаксис 1-D, X = ndgrid(x)
, возвращает gpuArray
Вектор-столбец X
который содержит элементы входного gpuArray
x
для использования в качестве одномерной сетки.
Входы должны быть с плавающей точкой двойной или одинарной.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
Синтаксис 1-D, X = ndgrid(x)
, возвращает распределенный вектор-столбец массива X
который содержит элементы входного распределенного массива x
для использования в качестве одномерной сетки.
Входы должны быть с плавающей точкой двойной или одинарной.
Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.