我想知道是否有人可以帮助我对我的代码部分进行矢量化。这里,bin_pdf是二项式系数函数。 pb和pd是标量参数。谢谢!
for t=0:min(T,r)
for n=0:r-t
pp = (bin_pdf(n,pb,r-t) * bin_pdf(t,pd,min(T,r)));
pt = pt + t/r * pp;
pn = pn + n/r * pp;
pc = pc + (r-t-n)/r * pp;
end
end
其中
function p = bin_pdf(x,rho,n)
if (x > n) || (n < 0)
p = 0;
else
p = Choosenk(n,x) * rho^x * (1-rho)^(n-x);
end
和
function C=Choosenk(n,k)
if k>n/2
k=n-k;
end;
C=1;
for i=0:k-1
C=C*(n-i)/(k-i);
end
end
答案 0 :(得分:0)
这是矢量化的Choosenk。如果你不在其他地方调用它,你可以将它集成到bin_pdf中。
function C=Choosenk(n,k)
if k>n/2
k=n-k;
end;
C=prod((n-k+1:n)./(1:k));
end