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

1 view (last 30 days)
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!

Answers (2)

Star Strider
Star Strider on 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 on 22 Sep 2020

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!