数组中的距离
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组中的距离相关的知识,希望对你有一定的参考价值。
所以我必须编写一个函数来计算两个点之间的距离 - p1和p2 - 来自具有多个点的数组。每个点代表一个每边20米的正方形。距离应该是这样的:
d = sqrt(w(r1 −r2))^2 + (w(c1 −c2))^2 + (a1 −a2)^2 )
其中w是20,正方形的一边,r1和r2,行的索引,c1和c2是列的索引,a1和a2是每个点的值。
距离数组是:
test = [ [206,205,204,190,208], [190,194,206,197,203], [196,196,205,201,193], [194,199,199,206,205], [192,196,195,201,193], [194,199,200,200,205], [196,196,195,200,193] ]
有人可以帮忙解决这个问题吗?
答案
首先,您需要从数学库中导入sqrt,可以通过将值乘以自身(r2-r1)(r2-r1)或使用数学库中的pow来计算。 (r2-r1)^ 2不起作用。
严格来说,A不是数组,而是列表(列)的列表(行)。但无论如何,你可以把它作为一种阵列。您可以使用两个索引A [row_index] [column_index]获取它的值
from math import sqrt, pow
A = [[206,205,204,190,208],
[190,194,206,197,203],
[196,196,205,201,193],
[194,199,199,206,205],
[192,196,195,201,193],
[194,199,200,200,205],
[196,196,195,200,193]]
W = 20
def distance(r1, c1, r2, c2):
# get a values for point 1 and 2
a1 = A[r1][c1]
a2 = A[r2][c2]
# calculate the distance
d = sqrt(pow(W*(r2-r1), 2) + pow(W*(c2-c1), 2) + pow(a2-a1, 2))
return d
print(distance(0,0,4,4))
>>> 113.88
以上是关于数组中的距离的主要内容,如果未能解决你的问题,请参考以下文章