【PLA】基于Python实现的线性代数算法库之向量
算法包下载链接:https://download.csdn.net/download/qq_42629529/79481514
from PLA.Vector import Vector
if __name__ == "__main__":
#基于对象方法
vec = Vector([5, 2])#vec 系统调用 __repr__(self)
print(vec)# 用户调用__str__(self)
#取向量长度
print("len(vec) = {}".format(len(vec)))
#取向量元素
print("vec[0] = {}, vec[1] = {}".format(vec[0], vec[1]))
vec2 = Vector([3, 1])
#加
print("{} + {} = {}".format(vec, vec2, vec + vec2))
#减
print("{} - {} = {}".format(vec, vec2, vec - vec2))
#乘数
print("{} * {} = {}".format(vec, 3, vec * 3))
#数乘
print("{} * {} = {}".format(3, vec, 3 * vec))
#取正
print("+{} = {}".format(vec, +vec))
#取负
print("-{} = {}".format(vec, -vec))
#0向量,基于类方法
zero2 = Vector.zero(2)
print(zero2)
print("{} + {} = {}".format(vec, zero2, vec + zero2))
#模
print("norm({}) = {}".format(vec, vec.norm()))
print("norm({}) = {}".format(vec2, vec2.norm()))
print("norm({}) = {}".format(zero2, zero2.norm()))
#规范化
print("normalize {} is {}".format(vec, vec.normalize()))
print(vec.normalize().norm())
print("normalize {} is {}".format(vec2, vec2.normalize()))
print(vec2.normalize().norm())
#规范化,0
try:
zero2.normalize()
except ZeroDivisionError:
print("Cannot normalize zero vector {}.".format(zero2))
#点乘
print(vec.dot(vec2))
vec3 = Vector([0, 0])
print("{} == {}? {}".format(zero2, vec3, vec3 == zero2))
print("{} == {}? {}".format(vec2, vec3, vec3 == vec2))
print("{} != {}? {}".format(vec2, vec3, vec3 != vec2))