首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >计算多维矩阵中的距离

计算多维矩阵中的距离
EN

Stack Overflow用户
提问于 2017-04-24 23:45:56
回答 3查看 81关注 0票数 2

我写了这段代码来计算距离。但是得到了ValueError: math domain error的错误。

代码语言:javascript
运行
复制
import math

a=[[5, 10],
   [16, 23]]

b=[[6, 1], [21, 2]]

dL=[]
dist=[]
k=0
h=1
for i in range(len(a)):
    dL=[]
    for j in range(len(a)):
        d=math.sqrt((a[i][k]-b[j][k])^2 + (a[i][h]-b[j][h])^2)
        dL.append(d)
    dist.append(dL)

在迭代中,d应该是:

代码语言:javascript
运行
复制
i=0, j=0: d=sqrt((5-6)^2+(10-1)^2)
i=0, j=1: d=sqrt((5-21)^2+(10-2)^2)
i=1, j=0: d=sqrt((16-6)^2+(23-1)^2)
i=1, j=1: d=sqrt((16-21)^2+(23-2)^2)
EN

回答 3

Stack Overflow用户

发布于 2017-04-24 23:54:32

len(a)的值是2,对于count从0开始,因此,请求数组中的第三个元素,您必须这样做

for i in range(len(a) - 1):

票数 0
EN

Stack Overflow用户

发布于 2017-04-25 00:03:50

当您尝试将sqrt与负数一起使用时,sqrt会显示该错误。sqrt(-16)给出了这个错误,因为结果是一个复数。

代码语言:javascript
运行
复制
from math import sqrt
a=[[5, 10], [16, 23]]


b=[[6, 1], [21, 2]]

dL=[]
dist=[]
k=0
h=1
for i in range(len(a)):
    dL=[]
    for j in range(len(a)):
        temp1 = (a[i][k]-b[j][k]) ** 2
        temp2 = (a[i][h]-b[j][h]) ** 2
        temp = temp1 + temp2
        if temp > 0:
            d = sqrt(temp)

        dL.append(d)
    dist.append(dL)
票数 0
EN

Stack Overflow用户

发布于 2017-04-25 00:45:03

正如@not_a_robot在他们的评论中提到的那样,Python中的求幂运算符是**而不是^,因为它在(许多)其他编程语言中是^。您可以通过简单地替换它们来修复。

代码语言:javascript
运行
复制
import math

a= [[ 5, 10],
    [16, 23]]
b= [[ 6,  1],
    [21,  2]]

dL=[]
dist=[]
k=0
h=1
for i in range(len(a)):
    dL=[]
    for j in range(len(a)):
        d = math.sqrt((a[i][k]-b[j][k])**2 + (a[i][h]-b[j][h])**2)
        dL.append(d)
    dist.append(dL)

正如我在评论中提到的,使用math.hypot()会更好,因为它会更快地给出相同的结果,并且更容易阅读(和写入):

代码语言:javascript
运行
复制
for i in range(len(a)):
    dL=[]
    for j in range(len(a)):
        d = math.hypot(a[i][k]-b[j][k], a[i][h]-b[j][h])
        dL.append(d)
    dist.append(dL)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43592482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档