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

1 回表示 (過去 30 日間)
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

採用された回答

Bob Thompson
Bob Thompson 2019 年 9 月 16 日
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;
  5 件のコメント
Bob Thompson
Bob Thompson 2019 年 9 月 16 日
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 2019 年 9 月 16 日
I wish Matalb offers an intellegent code analyzer which can recommend these kind of issues and can present alternate solutions as well.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeThermodynamics & Statistical Physics についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by