meshgrid

Описание

пример

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

пример

[X,Y] = meshgrid(x) совпадает с [X,Y] = meshgrid(x,x), возврат квадратных декартовых координат с размером сетки length(x)- length(x).

пример

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

пример

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

Примеры

свернуть все

Создайте 2D декартовы координаты с 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 по 2D сетке.

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

     2     5    10
     5     8    13
    10    13    18
    17    20    25
    26    29    34

Создайте 2D сетку с однородно расположенными с интервалами x-координатами и y-координатами в интервале [-2,2].

x = -2:0.25:2;
y = x;
[X,Y] = meshgrid(x);

Оцените и постройте функцию f(x,y)=xe-x2-y2 по 2D сетке.

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. Для получения дополнительной информации о неявном расширении см. Массив по сравнению Матричные операции.

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-координаты по сетке, возвращенной как 2D (два входных параметров) или трехмерный массив (три входных параметров).

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

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

Больше о

свернуть все

Преобразуйте между meshgrid и ndgrid ' format '

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++ с помощью MATLAB® Coder™.

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

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