Index in position 2 is invalid. Array indices must be positive integers or logical values.

1 Ansicht (letzte 30 Tage)
Hi. Im a newb. Im struggling to figure this part out. From what I can see, none of my indexes are negative. How can I fix this?
for iter=J:-1:1 % loop over
iter;
for indY=1:dimY
V(:, indY)=interp1(K, V(:, indY), K_prime, 'linear', 'extrap');
end
for ik=1:dimK % loop over all current cake sizes
for ik2=1:dimK
c=K(ik)*(1+r)+Y(iter)-K(ik2);
if c>0
U(ik, Y(iter), K(ik))=((c)^(1-eta)-1)/(1-eta)+beta*transY(indY, :).*(V(ik2, :)');
else
U(ik2)=-1e10;
end
end
[V(ik, iter), ind]=max(U); % optimizing over size of next period cake
A(ik, iter)=K(ind);
A_ind(ik, iter)=ind;
C(ik, iter)=K(ik)*(1+r)+Y(iter)-K(ind);
end
end
Im assuming the line I have bolded is the issue, but Im not entirely sure.
Thank you for your help!

Antworten (2)

Star Strider
Star Strider am 22 Sep. 2020
My guess is that the problem is using ‘Y(iter)’ and ‘K(ik)’ as indices in that assignment. They may not be integers greater than 0, or logical values. All the other array references appear to be correct

Image Analyst
Image Analyst am 22 Sep. 2020

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte


Version

R2020a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by