0
点赞
收藏
分享

微信扫一扫

【PLA】基于Python实现的线性代数算法库之向量

洲行 2022-02-06 阅读 34

【PLA】基于Python实现的线性代数算法库之向量

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))

举报

相关推荐

0 条评论