获取向量的大小(x,y)

时间:2015-09-10 12:54:06

标签: python python-2.7 oop vector

我正在努力让这个工作起作用,因为我能找到的所有答案大多数答案都集中在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()

0 个答案:

没有答案