Subscript indices must either be real positive integers or logicals

조회 수: 1 (최근 30일)
Greetings all,
Well, I've never seen this error before, and I did try making my imaginary parts real - still didn't help.
Here's my code if you will (the relevant parts, all things not shown are previously defined):
D = [5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25];
skin_depth_seawater = sqrt(2/sigma_helo_seawater*u*omega);
F_1 = 1;
r = sqrt(eta^2+i*omega*sigma_helo_seawater*u);
V_1 = sqrt(r^2 + (2*i*sigma_helo_seawater/sigma_helo_seawater));
R(D,r) = real(V_1*F_1 - r)/(V_1*F_1 + r); %****
Now when I run the file, it gives me the "subscript indices must either be real positive integers or logicals" error at the line where I have **.
Can someone explain what I am doing wrong and where I need to correct it?
Thanks!

채택된 답변

Walter Roberson
Walter Roberson 2012년 7월 24일
r = sqrt(eta^2+i*omega*sigma_helo_seawater*u);
will almost never be a positive integer, but you try to use r as a subscript in the output of the assignment.
  댓글 수: 3
Walter Roberson
Walter Roberson 2012년 7월 25일
편집: Walter Roberson 2012년 7월 25일
Your D contains only values that are purely integer-valued.
The "i*" in your expression suggests that r is likely the square root of an imaginary number, which will not be a real positive integer when you try to store into R(D,r)
The problem isn't in storing imaginary numbers: the problem is trying to use an imaginary number as a subscript.
Try using
R(D,:) = (V_1*F_1 - r)/(V_1*F_1 + r);
Jesse
Jesse 2012년 7월 25일
Awesome! Thanks Walter!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by