Python数值计算(3)——均分向量的构造和使用

这次说一说构造均分向量的操作。

1. 造轮子

在数值计算中 ,我们通常要在区间[a,b]之间产生指定步长或者给定采样点的一组等差数列(或者说是一个向量),例如MATLAB中的linspace函数,linspace(a,b,n)在区间[a,b]之间产生n个元素,定义一下我们自己的函数,如下:

def lincount(a,b,n):
    if n<2:
        raise("'n' should be n>=2")
    dh=(b-a)/(n-1)
    cnt=0
    ret=[]
    while cnt<n:
        ret.append(a+cnt*dh)
        cnt+=1
    return ret


#测试
print(lincount(1,5,7)) # [1.0, 1.6666666666666665, 2.333333333333333, 3.0, 3.6666666666666665, 4.333333333333333, 5.0]

另外一种是给定步长的方式,定义函数如下:

def linstep(a,b,dx):
    ret=[]
    x=a
    while x<b:
        ret.append(x)
        x+=dx
    return ret

#测试
print(linstep(1,3,0.3)) # [1, 1.3, 1.6, 1.9000000000000001, 2.2, 2.5, 2.8]

2. 用轮子

这么基本而又常见的需求,肯定是有其他大佬早就完成了这样的工作,我们完全没必要自己造轮子,numpy模块中就有这样的函数,分别是arange和linspace。

arange和Python原生的range类似,但是后者只支持整数,而arange则更加强

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值