Мне было интересно, сможет ли кто-нибудь помочь мне векторизовать эту часть моего кода. Здесь bin_pdf - функция биномиального коэффициента. pb и pd - скалярные параметры. Спасибо!Как векторизовать зависимые петли в Matlab
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
Какова форма pp, pt, pn и pc? Являются ли они скалярами, векторами или массивами? И какая из величин - ваш выход, когда вы закончите с двойной петлей? – chipaudette
@chipaudette Я добавляю содержимое bin_pdf ниже. pp, pt, pn и pc являются скалярными. Мне нужны окончательные результаты из них после всех итераций. –
Разве вы не можете использовать ['binopdf'] (http://es.mathworks.com/help/stats/binopdf.html)? –