Как преобразовать полярный массив в декартовый массив в python? - PullRequest
0 голосов
/ 08 мая 2019

У меня есть (720, 720) полярная матрица (r, тета), которую я хочу преобразовать в декартову (720, 720) матрицу (x, y).

Я могу рассчитать:

x = r*cos(theta)

y = r*sin(theta) 

Я не знаю, как пересчитать эти результаты в декартову форму. Как я могу изменить его в массив?

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Предполагая, что вы сохранили свою матрицу 720x720 в виде простого списка Python, вы создадите новый список, подобный этому:

from math import sin, cos

lst_polars = [
    (1, 15), (1, 30), (1, 45), (1, 60), (1, 75), (1, 90),
]

cartesian_lst = [
    (r * cos(theta), r * sin(theta)) for r, theta in lst_polars
]

print(cartesian_lst)

Если вы не хотите использовать списки понимания, выпросто сделайте это с нормальным циклом for:

cartesian_lst = []
for r, theta in lst_polars:
    cartesian_lst.append((r * cos(theta), r * sin(theta)))
0 голосов
/ 08 мая 2019

Если ваши данные представляют собой список списков [[r, theta], [r, theta] ...] или массив аналогичной формы, вы можете использовать следующее:

[[r*cos(theta), r*sin(theta)] for r,theta in data]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...