meshgrid

Описание

пример

[X,Y] = meshgrid(x,y) возвращает 2-D координаты сетки на основе координат, содержащихся в векторах x и y. X - матрица, где каждая строка является копией x, и Y - матрица, где каждый столбец является копией y. Сетка, представленная координатами X и Y имеет length(y) строки и length(x) столбцы.

пример

[X,Y] = meshgrid(x) то же, что и [X,Y] = meshgrid(x,x), возвращая квадратные координаты сетки с размером сетки length(x)-by- length(x).

пример

[X,Y,Z] = meshgrid(x,y,z) возвращает 3-D координаты сетки, заданные векторами x, y, и z. Сетка, представленная X, Y, и Z имеет размер length(y)-by- length(x)-by- length(z).

пример

[X,Y,Z] = meshgrid(x) то же, что и [X,Y,Z] = meshgrid(x,x,x), возвращая 3-D координаты сетки с размером сетки length(x)-by- length(x)-by- length(x).

Примеры

свернуть все

Создайте 2-D координаты сетки с координатами X, заданными вектором x и y-координаты, заданные вектором y.

x = 1:3;
y = 1:5;
[X,Y] = meshgrid(x,y)
X = 5×3

     1     2     3
     1     2     3
     1     2     3
     1     2     3
     1     2     3

Y = 5×3

     1     1     1
     2     2     2
     3     3     3
     4     4     4
     5     5     5

Вычислите выражение x2+y2 по 2-D сетке.

X.^2 + Y.^2
ans = 5×3

     2     5    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)=xe-x2-y2 по 2-D сетке.

F = X.*exp(-X.^2-Y.^2);
surf(X,Y,F)

Figure contains an axes. The axes contains an object of type surface.

Начиная с R2016b, не всегда необходимо создавать сетку перед операцией над ней. Для примера вычисление выражения xe-x2-y2 неявно расширяет векторы x и y. Для получения дополнительной информации о неявном расширении смотрите Array vs. Матричные операции.

surf(x,y,x.*exp(-x.^2-(y').^2))

Figure contains an axes. The axes contains an object of type surface.

Создайте 3-D координаты сетки из координат x -, y - и z, определенных в интервале [0,6], и вычислите выражение x2+y2+z2.

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

Определите размер сетки. Три вектора координат имеют разную длину, образуя прямоугольный прямоугольник с точками сетки.

gridsize = size(F)
gridsize = 1×3

     7     4     3

Используйте синтаксис с одним входом, чтобы сгенерировать равномерно разнесенную 3-D сетку на основе координат, определенных в x. Новая сетка формирует кубик точек сетки.

[X,Y,Z] = meshgrid(x);
G = X.^2 + Y.^2 + Z.^2;
gridsize = size(G)
gridsize = 1×3

     4     4     4

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

свернуть все

x-координаты точек, заданные как вектор.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

y-координаты точек, заданные как вектор.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

z-координаты точек, заданные как вектор.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

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

свернуть все

x-координаты по сетке, возвращенные как 2-D (два входов) или трехмерный массив (три входов).

y-координаты по сетке, возвращенные как 2-D (два входов) или трехмерный массив (три входов).

z-координаты по сетке, возвращенные как трехмерный массив.

Подробнее о

свернуть все

Преобразование между 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)]).

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

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

.

Генерация кода GPU
Сгенерируйте код CUDA ® для графических процессоров NVIDIA ® с помощью GPU Coder™

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