Array indices must be positive integers or logical values. This error is coming at line:while C(counter)> C(j) && abs(f)>.00001. Please help me out.
2 views (last 30 days)
Show older comments
Rashedul Chy
on 23 Sep 2018
Commented: Rashedul Chy
on 23 Sep 2018
D=800; d=[1 600 09 0.02 300 500; 2 500 10 0.04 100 400; 3 400 06 0.08 050 200]; g=1; P1=400; P2=300; P3=100; del_C1=.04*P1-.16*P3+2; del_C2=.08*P2-.16*P3+4; counter=1; C=15900; while C(counter)> C(j) && abs(f)>.00001 if sum(del_C1,del_C2)<0 && del_C1>del_C2 P1=P1+1; P2=P2; P3=P3-1; P=[P1;P2;P3]; f=D-sum(P); C=d(:,2)+d(:,3).*P+d(:,4).*P.*P; counter=counter+1; j=counter;
0 Comments
Accepted Answer
Image Analyst
on 23 Sep 2018
You forgot to assign j before the loop. Fix:
D=800;
d=[1 600 09 0.02 300 500;
2 500 10 0.04 100 400;
3 400 06 0.08 050 200];
g=1;
P1=400;
P2=300;
P3=100;
del_C1=.04*P1-.16*P3+2;
del_C2=.08*P2-.16*P3+4;
counter=1;
C=15900;
j=counter;
while C(counter)> C(j) && abs(f)>.00001
if sum(del_C1,del_C2)<0 && del_C1>del_C2
P1=P1+1;
P2=P2;
P3=P3-1;
P=[P1;P2;P3];
f=D-sum(P);
C=d(:,2)+d(:,3).*P+d(:,4).*P.*P;
counter=counter+1;
j=counter;
end
end
msgbox('Done');
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!