Функция 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
|
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
|
Output:
Random Data:
Python3
|
Выход:
Python3
+ Y_1 * * 2 3334 |
Output:
We observe that x_1 является повторяющейся матрицей строк, тогда как y_1 является повторяющейся матрицей столбцов. Одной строки x_1 и одного столбца y_1 достаточно, чтобы определить положение всех точек, поскольку другие значения будут повторяться снова и снова. Таким образом, мы можем отредактировать приведенный выше код следующим образом:
Это приведет к следующему выводу:
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
= 'ij' )
|
Вывод:
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 г.