Can anyone explain to me why I'm geeting an array indexing error for this script?
Array indices must be positive integers or logical values.
"Error in Finding_rp_test (line 32)
rn = (An(1-(En^2)))./(1+En*cos(thn));"
It's in the last line where I assign rn (Intending on running this for an array of 't' not just a single value).
An = 178942976.896420
En = 0.1781
t = 1
Mn = Nn*t;
EE0n = Mn;
DEEn = ((Mn-EE0n)+En*sin(EE0n))./(1-En*cos(EE0n));
if En==0
thn = Mn;
else
while DEEn>10^-12
DEEn = (Mn-EE0n+(En*sin(EE0n)))./(1-(En*cos(EE0n)));
EE0n = EE0n + DEEn;
thn = 2*atan((((1+En)./(1-En))^0.5)*tan(EE0n./2));
end
end
rn = (An(1-(En^2)))./(1+En*cos(thn));

 Risposta accettata

Image Analyst
Image Analyst il 24 Nov 2018
An is a scalar, not an array, so perhaps you meant:
rn = (An*(1-(En^2)))./(1+En*cos(thn));

1 Commento

Scott Hunter
Scott Hunter il 25 Nov 2018
Wow, massive facepalm. Been looking at it for days, all just a typo! Thank you!

Accedi per commentare.

Più risposte (0)

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by