我需要找到函数L的变化,其中L是一个从0到10(例如)以0.5为步长变化的数字。这是问题所在:
S是排序数字x的序列。我们假设在区间[x,x + L]中,k个x的数目位于。
必须按以下方式为S中的每个x计算函数F。
对于每个x,我需要找到函数F
要了解F随L的变化,我必须找到特定L数组中所有x的F(x,L),然后取它们的平均值。预防措施是使间隔[x,x + L] 不重叠。
我已经尝试过以下代码,以便仅针对一个L值获得不重叠的间隔。
S= np.array([0.1,0.5,2.2,3.1,4.2,5.1,5.2,5.3,6.0,6.1,7.1])
L=0.5
ub = S[0]+L
for i in ev:
if i<=ub:
ub == ub
first_stack=S[S<=ub]
else:
ub = i+0.5
print(i,ub)
intrvl=S[(S>=i)&(S<=ub)]
print(intrvl)
count=np.size(intrvl)
print("count=",count)
使用上述代码,
但是first_stack
的值是错误的。
对于L = 0.5,应该是[0.1,0.5],这不是我得到的。
此外,该方法往往冗长且效率低下。 我可以指导一种更有效的方法吗? 非常感谢。