My code is generating this error " Index exceeds matrix dimensions" . Apparently it looks fine. Still can not figure out the problem.

Robert101 (view profile)

on 16 Sep 2019 at 12:03
Latest activity Commented on by Robert101

Robert101 (view profile)

on 16 Sep 2019 at 13:08
Accepted Answer by Bob Nbob

Bob Nbob (view profile)

c1 = 0.1;
c2 = 0.0001;
L = 5.0;
M = 0.04;
P1 = 1.0e-2;
P2 = 1.0e-5;
for i=1:64
for j=1:64
C1(i,j) = c1 + P1*(0.5-rand);
C2(i,j) = c2 + P2*(0.5-rand);
end
end
for i=1:64
for j=1:64
dfdC1(i,j) = (L/M) - M*(log(1 - C1(i,j) - C2(i,j)) - log(C1(i,j)))/M;
end
end

Answer by Bob Nbob

Bob Nbob (view profile)

on 16 Sep 2019 at 12:24

dfdc1(i,j) = (L/M) - M*(log(1 - c1(i,j) - c2(i,j)) - log(c1(i,j)))/M;
c1 and c2 are defined as single values (0.1 and 0.0001), but you are trying to index them. I am assuming you want to refer to C1 and C2.
dfdc1(i,j) = (L/M) - M*(log(1 - C1(i,j) - C2(i,j)) - log(C1(i,j)))/M;

Robert101

Robert101 (view profile)

on 16 Sep 2019 at 12:46
Yeah, i just realize that too. I am new to programming and learning it by myself so bad practices are very rampant in my codes, i guess.
Bob Nbob

Bob Nbob (view profile)

on 16 Sep 2019 at 12:48
No problems. I have done the same thing, even when I don't have c1 and C1 as different variables. Sometimes you just need an extra set of eyes.
Robert101

Robert101 (view profile)

on 16 Sep 2019 at 13:08
I wish Matalb offers an intellegent code analyzer which can recommend these kind of issues and can present alternate solutions as well.