I have a code here that give me errors. In the code I am computing a i-th dot product and want to replace this values on the i-th super diagonal.
lambda=0.42;n=100;p=0.005;P=zeros(1001,1001);for i=1:1000 a=i:1000; b=a-i; v=poisspdf(a,lambda); w=binopdf(b,n,p); c=dot(v,w); d=size(diag(P,i),1);%this is the size of the vector with elements of the kth diagonal
e=c*ones(d,1); diag(P,i)=e;end
But matlab gives me an error saying:
Subscript indices must either be real positive integers or logicals.Error in pdfnumber (line 18) diag(P,i)=e;
Then I tried a more simple code. But is only replaces the 1 super diagonal for me, while i runs from 1 to 1000.
for i=1:1000 a=i:1000; b=a-i; v=poisspdf(a,lambda); w=binopdf(b,n,p); c=dot(v,w); P(i,i+1)=c;end
What am I doing wrong?
Best Answer