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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值