【发布时间】:2014-08-14 00:05:40
【问题描述】:
我有一个如下所示的数组:
A=[ id. r d ]
[[ 47. 223.25190261 58.0551391 ]
[ 49. 223.25102751 58.05662719]
[ 57. 223.25013049 58.05139459]]
第一列并不重要。不过下面两个是坐标。
我必须将每组坐标(第 2 列和第 3 列一起)与这些坐标进行比较: (223.251, 58.05) 通过使用这个等式:B=sin(D)sin(d) + cos(D)cos(d)cos(R-r)。
其中 (R,D) 是原始坐标 (223.251, 58.05),(r,d) 是数组中的坐标。 如何为数组中的每组坐标执行此操作,而不必自己输入数字或不必定义每个数字并用下一组坐标替换它们?我希望程序显然保持 (R,D) 一致并为每一行更改 (r,d) 并进行计算。完成对每一行的计算后,我想让它们输出。我真的不知道该怎么做,我在想可能是有循环的东西。我真的迷路了。 代码的结尾是这样的:
B=(((sin(dec0))*(sin(dec1)) + (cos(dec0)*cos(dec1))*(cos(ra0-ra1))))
print B
0.540302302454
但这只是第一行坐标,我希望是手动完成
【问题讨论】:
-
单位是什么?它们看起来不像极坐标,仅计算坐标的 x 或 y 值的(余)正弦是没有意义的..?
-
它们是度数。输入看起来像: B=(((sin(58.05))*(sin(58.0551391)) + (cos(58.05)*cos(58.0551391))*(cos(223.251-223.25190261))))
-
@user3700386 您是否尝试过以下答案中的方法?
标签: python arrays loops numpy trigonometry