类向量 - 非特定维度的两个向量的乘法(Class vectors - multiplication of two vectors of non-specific dimension)
class MyVector:
def __init__(self, vector): # classic init
self.vector = vector
def get_vector(self):
return self.vector
def __mul__(self, other):
for i in range(0, len(self.vector)): #cycle
# if I did scalar_product += (self.vector[i] * other.vector[i]) here,
# it didn't work
scalar_product = (self.vector[i] * other.vector[i])
return (scalar_product)
if __name__ == "__main__": #just testing program
vec1 = MyVector([1, 2, 3, 4])
vec2 = MyVector([4, 5, 6, 7])
print(vec1.get_vector())
print(vec2.get_vector())
scalar_product = vec1*vec2
print(scalar_product) # shows only 4*7 but not others
我该怎么做才能使这个程序工作? 现在它只是将最后的数字相乘,例如4 * 7,而不是其他数字。
class MyVector: def __init__(self, vector): # classic init self.vector = vector def get_vector(self): return self.vector def __mul__(self, other): for i in range(0, len(self.vector)): #cycle # if I did scalar_product += (self.vector[i] * other.vector[i]) here, # it didn't work scalar_product = (self.vector[i] * other.vector[i]) return (scalar_product) if __name__ == "__main__": #just testing program vec1 = MyVector([1, 2, 3, 4]) vec2 = MyVector([4, 5, 6, 7]) print(vec1.get_vector()) print(vec2.get_vector()) scalar_product = vec1*vec2 print(scalar_product) # shows only 4*7 but not othersWhat do I have to do to make this program work? Now it just multiplies the last digits, for example 4 * 7, but not the other ones.
最满意答案
您需要首先定义标量产品:
def __mul__(self, other): scalar_product = 0 # or 0.0 for i in range(0, len(self.vector)): scalar_product += self.vector[i] * other.vector[i] return scalar_product您还应该返回MyVector类型的对象
You need to define your scalar product first:
def __mul__(self, other): scalar_product = 0 # or 0.0 for i in range(0, len(self.vector)): scalar_product += self.vector[i] * other.vector[i] return scalar_productYou should also return an object of type MyVector
更多推荐
发布评论