gpt4 book ai didi

python - 给定大小为 n 的矩阵,计算距中心的距离矩阵

转载 作者:行者123 更新时间:2023-12-01 08:59:19 25 4
gpt4 key购买 nike

假设我有一个大小为 n(非 1 的奇数)的矩阵,我想计算每个条目距中心的距离。例如,如果 n = 2,则矩阵为 5 x 5,要找到矩阵的中心,您需要执行以下操作..

import numpy as np
import math
center = math.floor(5/2)
Matrix[math.floor(5/2)][math.floor(5/2)] = 0

中心为零,因为到其自身的距离为 0。我的方法是将中心设置为坐标平面的原点,并将 25 个“正方形”(5 × 5 矩阵)中的每一个视为坐标平面中心的一个点。每个正方形,然后计算该点到中心的欧氏距离。视觉上: enter image description here

到目前为止我的想法..

Matrix = [[0 for x in range(n)] for y in range(n)] #initialize the n by n matrix
for i in range(0, n):
for j in range(0, n):
Matrix[i][j] = ...

或者有更好的方法来找到距离矩阵吗?

输出应该是对称的,对于 n = 5 矩阵,它应该是对称的

Matrix
[[2.82843, 2.23607, 2, 2.23607, 2.82843],
[2.23607, 1.41421, 1, 1.41421, 2.23607],
[2, 1, 0, 1, 2],
[2.23607, 1.41421, 1, 1.41421, 2.23607],
[2.82843, 2.23607, 2, 2.23607, 2.82843]]

TIA

最佳答案

答案是毕达哥拉斯著名定理:https://www.mathsisfun.com/pythagoras.html对于 (i,j) 处的单元格,您需要到中心单元格的 (x,y) 偏移量 - 然后应用毕达哥拉斯定理来计算到该单元格的距离...

def pythag(a, b):
return math.sqrt(a*a + b*b)

n = 5
import math
center = math.floor(n/2)
for i in range(0, n):
for j in range(0, n):
dist = pythag(i-center, j-center)
print(dist)

这是一个带有代码的repl:https://repl.it/@powderflask/DizzyValuableQuark

关于python - 给定大小为 n 的矩阵,计算距中心的距离矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52579959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com