numpy软件包中的vectorize命令结果错误

时间:2019-04-24 13:54:38

标签: python-3.x

我是python的新手,我正在尝试制作一系列逐步函数。我已经编写了以下代码,但是,对于某些n值,例如n = 4,6,7,8,10,11,...,它不能真正起作用,并且在间隔[0中的所有点处仅返回0 ,1]

import numpy as np
import math
def int1haar(n,x):
    m=2**(math.floor(math.log(n-1,2)))
    k=n-m-1
    alpha=k/m
    beta=(k+0.5)/m
    gama=(k+1)/m
    if x >=0 and x < alpha:
        return 0
    elif x >=alpha and x < beta:
        return x-alpha
    elif x >=beta and x < gama:
        return 2*beta-x-alpha
    elif x >=gama and x <= 1:
        return 2*beta-alpha-gama
    else:
        return 0
print(int1haar(2,.5))
vfun = np.vectorize(int1haar)
x = np.linspace(0,1,num=1000)
y = vfun(4,x)
print(y)

我期望一个非零向量,但输出是零向量。

0 个答案:

没有答案