如何在python中将极坐标数组转换为笛卡尔坐标数组?

时间:2019-05-08 10:26:57

标签: python cartesian-product

我有一个(720,720)极坐标矩阵(r,theta),我想转换为笛卡尔(720,720)矩阵(x,y)。

我可以计算:

x = r*cos(theta)

y = r*sin(theta) 

我不知道如何将这些结果重新采样为笛卡尔形状。如何将其重新采样到数组中?

2 个答案:

答案 0 :(得分:0)

假设您的数据是列表[[r,theta,[r,theta] ...]或类似形状的数组的列表,则可以使用一种理解:

[[r*cos(theta), r*sin(theta)] for r,theta in data]

答案 1 :(得分:0)

假设您已将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)))