Subscript indices must either be real positive integers or logicals
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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!
0 commentaires
Réponse acceptée
Walter Roberson
le 24 Juil 2012
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 commentaires
Walter Roberson
le 25 Juil 2012
Modifié(e) : Walter Roberson
le 25 Juil 2012
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);
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Logical dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!