这是我的MatLab代码,运行良好:
r=log2(1+gamma)-sqrt(V(gamma)/n)*qfuncinv(target)/log(2);
V=@(x)1-(1+x).^-2;
我将按如下方式将其转换为python:
r=math.log2(1+gamma)-math.sqrt(V(gamma)/n)*(abs(norm.ppf(target))/math.log(2))
哪里,
gamma = 1 x 4957 double, n=256, target= 10**-5
和v
def V(x):
return (x)-(1+x)**-2
如何解决这个问题?谢谢
1条答案
按热度按时间72qzrwbm1#
如果您使用的是NumPy数组,请使用NumPy。
math
通常只接受1个数字作为输入,即python标量。因此,当V(gamma)/n
恰好是一个大小大于1的数组,并且math.sqrt
需要一个python标量时,您会得到: