我正在努力让这个工作起作用,因为我能找到的所有答案大多数答案都集中在numpy数组中的向量而不是像我的类(OOP)。 (我希望我以正确的方式表达所有这些,请原谅,如果我不是)。
我想找到向量(x,y)的大小,这是我的代码:
class Vector(object):
def __init__(self, x, y):
self.x = x
self.y = y
我的代码可以对两个向量求和,但是如何用这个等式得到幅度:
magnitude = math.sqrt(sum(向量中的v为v ** 2))
这是我的代码,但它没有给我我需要的东西:
def vector_mag(self):
x_vector = self.x
y_vector = self.y
vector = (x_vector, y_vector)
magnitude = math.sqrt(sum(v**2 for v in vector))
return Vector(magnitude)
这会出现错误:
第22行,
print vector.vector_mag()
第14行,在vector_mag
中返回Vector(幅度)
TypeError: init ()正好接受3个参数(给定2个)
所以当我在返回部分添加另一个“字符串”时,这样......:
返回Vector(“矢量幅度为:”,幅度)
......程序运行但结果却很奇怪。
我做错了什么?
这是我的“完整”代码:
导入数学
类Vector(对象):
def __init__(self, x, y): self.x = x self.y = y def vector_mag(self): x_vector = self.x y_vector = self.y vector = (x_vector, y_vector) magnitude = math.sqrt(sum(v**2 for v in vector)) return Vector("Vector magnitude is: ", magnitude)
vector1 = Vector(10,1)
vector2 = Vector(20,2)
vector_list = [(vector1),(vector2)]
for vector_list中的vector:
print vector.vector_mag()