MATLAB: Matlab won’t plot anything. please help why

probability

clear all;
clc;
u = 7 ;
snrdb = 5;
for pf=0.001:0.01:1;
lamda = 2*gammaincinv((1-pf),u);
gama = db2mag(snrdb);
p = 0:(u-2);
a = exp(-lamda/2);
b = ((1 + gama)/gama).^(u-1);
c = exp(-lamda/(2+2*gama));
x = sum((1./(factorial(p))).*((lamda/2).^p))
y = sum((1./(factorial(p))).*(((lamda*gama)/2*gama)).^p));
s=(a*x)+b.*(c-(a*y));
end
plot (pf,s);
grid on

Best Answer

I did not preallocate, up to you.
Keep things not dependent on the iteration outside of the loop. Also, this can be achieved without a loop.
u = 7 ;
snrdb = 5;
gama = db2mag(snrdb);
pf = 0.001:0.01:1;
p = 0:(u-2);
b = ((1 + gama)/gama).^(u-1);
for ii = 1:numel(pf)
lamda = 2*gammaincinv((1-pf(ii)),u);
a = exp(-lamda/2);
c = exp(-lamda/(2+2*gama));
x = sum((1./(factorial(p))).*((lamda/2).^p));
y = sum((1./(factorial(p))).*(((lamda*gama)/2*gama)).^p);
s(ii) = (a*x)+b.*(c-(a*y));
end
plot (pf,s);
grid on