exponenta event banner

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)около-length(x).

пример

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

Примеры

свернуть все

Создание 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. Дополнительные сведения о неявном расширении см. в разделе Операции с массивом и матрицей.

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 (два входа) или 3-D массив (три входа).

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

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

Подробнее

свернуть все

Преобразовать между 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++ с помощью MATLAB ® Coder™

.

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

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