def patCycles(s0, s1=50, return_x=False):
arr = np.zeros(s0)
p = 1
t = 1
c = 0
x,y = [],[]
while True:
arr[p:p+t] = 1
p+=t
x.append(2*t)
y.append(p+0.5*t)
if c > s1:
t+=1
c += 2
p+=t
if p>s0:
break
arr = arr[::-1]
arr = np.broadcast_to(arr, (s1, s0))
if return_x:
#cycles/px:
x =np.interp(np.arange(s0), y, x)
return arr,1/x[::-1]
else:
return arr
评论列表
文章目录