Разное

Meshgrid matlab: 2-D and 3-D grids — MATLAB meshgrid

Функция Numpy Meshgrid — GeeksforGeeks

Функция numpy.meshgrid используется для создания прямоугольной сетки из двух заданных одномерных массивов, представляющих декартову или матричную индексацию. Функция Meshgrid несколько вдохновлена ​​MATLAB.
Рассмотрим приведенный выше рисунок с осью X в диапазоне от -4 до 4 и осью Y в диапазоне от -5 до 5. Таким образом, всего (9 * 11) = 99 точек, отмеченных на рисунке, каждая с координатой X и Y-координата. Для любой прямой, параллельной оси X, координаты X отмеченных точек соответственно равны -4, -3, -2, -1, 0, 1, 2, 3, 4. С другой стороны, для любой прямой параллельно оси Y координаты Y отмеченных точек снизу вверх равны -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5. numpy. Функция meshgrid возвращает два двумерных массива, представляющих координаты X и Y всех точек.
 

Примеры:  
 

  Ввод:  x = [-4, -3, -2, -1, 0, 1, 2, 3, 4]
        у = [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]
  Выход : 
x_1 = массив([[-4. , -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.], [-4., -3., -2., -1., 0., 1., 2., 3., 4.]]) y_1 = массив([[-5., -5., -5., -5., -5., -5., -5., -5., -5.], [-4., -4., -4., -4., -4., -4., -4., -4., -4.], [-3., -3., -3., -3., -3., -3., -3., -3., -3.], [-2., -2., -2., -2., -2., -2., -2., -2., -2.], [-1., -1., -1., -1., -1., -1., -1., -1., -1.], [0., 0., 0., 0., 0., 0., 0., 0., 0.], [1., 1., 1., 1., 1., 1., 1., 1., 1.], [2., 2., 2., 2., 2., 2., 2., 2., 2.], [3.
, 3., 3., 3., 3., 3., 3., 3., 3.], [4., 4., 4., 4., 4., 4., 4., 4., 4.], [ 5., 5., 5., 5., 5., 5., 5., 5., 5.]]) Ввод: х = [0, 1, 2, 3, 4, 5] у = [2, 3, 4, 5, 6, 7, 8] Выход : x_1 = массив([[0., 1., 2., 3., 4., 5.], [0., 1., 2., 3., 4., 5.], [0., 1., 2., 3., 4., 5.], [0., 1., 2., 3., 4., 5.], [0., 1., 2., 3., 4., 5.], [0., 1., 2., 3., 4., 5.], [0., 1., 2., 3., 4., 5.]]) y_1 = массив([[2., 2., 2., 2., 2., 2.], [3., 3., 3., 3., 3., 3.], [4., 4., 4., 4., 4., 4.], [5., 5., 5., 5., 5., 5.], [6., 6., 6., 6., 6., 6.], [7., 7., 7., 7., 7., 7.], [8., 8., 8., 8., 8., 8.]]

Below is the code: 
 

Python3

import numpy as np

 

x = np. linspace( - 4 , 4 , 9 )

 

y = np.linspace( - 5 , 5 , 11 )

X_1, Y_1 = NP.MESHGRID (X, Y)

PRINT (

. print (x_1)

print ( "y_1 = " )

print (y_1)

Output:  

 x_1 =
[[-4.  -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]
 [-4. -3. -2. -1. 0. 1. 2. 3. 4.]]
у_1 =
[[-5. -5. -5. -5. -5. -5. -5. -5. -5.]
 [-4. -4. -4. -4. -4. -4. -4. -4. -4.]
 [-3. -3. -3. -3. -3. -3. -3. -3. -3.]
 [-2. -2. -2. -2. -2. -2. -2. -2. -2.]
 [-1. -1. -1. -1. -1. -1. -1. -1. -1.]
 [ 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [ 1. 1. 1. 1. 1. 1. 1. 1. 1.]
 [ 2. 2. 2. 2. 2. 2. 2. 2. 2.]
 [ 3. 3. 3. 3. 3. 3. 3. 3. 3.]
 [ 4. 4. 4. 4. 4. 4. 4. 4. 4.]
 [ 5. 5. 5. 5. 5. 5. 5. 5. 5.]] 

 

Вывод координат с помощью meshgrid также можно использовать для построения графиков функций в заданном диапазоне координат.
Эллипс: 

 *** QuickLaTeX не может скомпилировать формулу:
 
*** Сообщение об ошибке:
Ошибка: Нечего показывать, формула пуста
 

 

Python3

ellipse = xx * 2 + 4 * yy * * 2

plt.

contourf(x_1, y_1, ellipse, cmap = 'jet' )

   

plt.colorbar()

plt.show()

Output: 
 

Random Data: 
 

Python3

random_data = np.random.random (( 11 , ))

PLT.Contourf (X_1, Y_1, Random_Data, CMAP 3333333 = = = = = = = = = = 9003 = =

= = = = = = = = 3333 = 33333333 годы = 333333 годы = 3333))))

PLT. Colorbar ()

PLT.Show ()

Выход:

. *** Сообщение об ошибке: Ошибка: Нечего показывать, формула пуста

 

Python3

sine = (np.sin(x_1 * * 2 + y_1 * * 2 ) / (x_1 * * 2

+ Y_1 * * 2 3334 4. 333434343.4.100334..100334.4.4.4.4.4..100334.4. 4.4. 4.4. 4..100334. 4. смап = 'jet' )

 

plt.colorbar()

plt.show()

Output: 
 

We observe that x_1 является повторяющейся матрицей строк, тогда как y_1 является повторяющейся матрицей столбцов. Одной строки x_1 и одного столбца y_1 достаточно, чтобы определить положение всех точек, поскольку другие значения будут повторяться снова и снова. Таким образом, мы можем отредактировать приведенный выше код следующим образом: 

x_1, y_1 = np.meshgrid(x, y, sparse = True)
Это приведет к следующему выводу: 
 

 x_1 = [[-4. -3. -2. -1. 0. 1. 2. 3. 4.]]
у_1 = [[-5.]
 [-4.]
 [-3.]
 [-2.]
 [-1.]
 [0.]
 [ 1.]
 [ 2.]
 [ 3.]
 [4.]
 [ 5.]] 

Форма x_1 изменилась с (11, 9) на (1, 9), а форма y_1 изменилась с (11, 9) на (11, 1) 
Однако индексация Matrix отличается. Фактически, это полная противоположность декартовой индексации.
 

Для матрицы, показанной выше, для данной строки координата Y увеличивается как 0, 1, 2, 3 слева направо, тогда как для данного столбца координата X увеличивается сверху вниз как 0, 1, 2 . 
Два двумерных массива, возвращаемые индексацией Matrix, будут транспонированными массивами, сгенерированными предыдущей программой. The following code can be used for obtaining Matrix indexing: 
 

Python3

import numpy as np

 

 

x = np.linspace( - 4 , 4 , 9 )

y = np. linspace( - 5 , 5 , 11 )

 

x_1, y_1 = np.meshgrid(x, y)

 

 

x_2, y_2 = np.meshgrid(x, y, indexing

= 'ij' )

 

печать ( "x_2 = " )

print (x_2)

print ( "y_2 = " )

print (y_2)

 

print (np. all (x_2 = = x_1.T))

print (np. all (y_2 = = y_1.T))

Вывод:  

 x_2 =
[[-4. -4. -4. -4. -4. -4. -4. -4. -4. -4. -4.]
 [-3. -3. -3. -3. -3. -3. -3. -3. -3. -3. -3.]
 [-2. -2. -2. -2. -2. -2. -2. -2. -2. -2. -2.]
 [-1. -1. -1. -1. -1. -1. -1. -1. -1. -1. -1.]
 [ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [ 1. 1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
 [ 2. 2. 2. 2. 2. 2. 2. 2. 2. 2. 2.]
 [ 3. 3. 3. 3. 3. 3. 3. 3. 3. 3. 3.]
 [ 4. 4. 4. 4. 4. 4. 4. 4. 4. 4. 4.]]
у_2 =
[[-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5.  -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]
 [-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.]]
Истинный
Правда 

 

Параметр sparse = True также можно добавить в функцию meshgrid матричного индексирования. В этом случае форма x_2 изменится с (9, 11) на (9, 1), а форма y_2 изменится с (9, 11) на (1, 11).
 


Как использовать Meshgrid в Matlab?

Лаборатория матриц или MATLAB — это язык программирования и среда числовых вычислений, разработанная MathWorks. Это основное программное обеспечение, используемое миллионами инженеров и ученых для различных приложений, таких как машинное обучение, глубокое обучение, обработка сигналов, обработка изображений, видео, передача сигналов, системы управления, вычислительная биология и многое другое.

Meshgrid создает прямоугольную сетку или матрицу в двухмерном и трехмерном пространстве. В этой статье мы поймем, как сетка используется в MATLAB.

Читайте также: Как построить уравнение в Matlab?


2D meshgrid создает двумерную сетку координат, которая создается на основе значений, сохраненных в предопределенных векторах, x и y в данном случае. Сетка X или созданная матрица представляет собой матрицу, в которой каждая строка является копией вектора x. Точно так же созданная сетка или матрица Y представляет собой матрицу, в которой каждый столбец является копией вектора и .

Если эти координаты должны быть нанесены на график, создается функция F с конкретными матричными операциями, и ее можно нанести на график с помощью функции Surf . Здесь создается новая функция, потому что функция серфинга является функцией трехмерного графика и требует трех координат: X , Y и Z .

Функция Surf означает Поверхностный график.

Если вы хотите сохранить координаты обоих X и Y одинаковы, функцию meshgrid можно изменить, указав в ней только нужный вектор.

Функция meshgrid(x) аналогична функции meshgrid(x, x). Следовательно, координаты остаются прежними, а строки и столбцы меняются местами. В некотором смысле можно сказать, что здесь Y является транспонированием X .

Как и выше, график здесь также может быть построен с использованием функции Surf .

Читайте также: Как построить несколько линий в Matlab?


3D meshgrid создает трехмерную сетку координат, которая создается на основе значений, сохраненных в предопределенных векторах, x, y и z в данном случае. Созданные сетки или матрицы X, Y и Z имеют размеры длина(y)- х длина(х) х длина(z) .

Если вы хотите сохранить координаты X , Y и Z одинаковы, функцию meshgrid можно изменить, указав в ней только нужный вектор. Функция meshgrid(x) аналогична функции meshgrid(x, x, x) .

Также читайте: Как инвертировать матрицу в Matlab?

Ишита Махешвари

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

Здравствуйте!

Если вам нравится то, что вы читаете, пожалуйста, поддержите нашу публикацию, поделившись ею с друзьями, семьей и коллегами. Мы рекламное издание. Итак, если вы используете блокировщик рекламы, мы смиренно просим вас внести нас в белый список. ?

Мы можем получить комиссию, если вы купите что-то по ссылке на этой странице. Спасибо за поддержку.

Ядулла Абиди 15:30 по восточному поясному времени | 1 октября 2021 г.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *