Array indices must be positive integers or logical values.
43 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Jocelyn
il 13 Nov 2020
Commentato: Steven Lord
il 31 Ago 2023
Hello,
My code below is displaying the following error message:
"Array indices must be positive integers or logical values.
Error in Assign5_Prob7 (line 38)
phi(i) = atand(tan(phi_o)+((g*t(i))/Vx_o)*((1/3)*((Vx_o/Vx(i)+ sqrt((Vx_o/Vx(i)))+1)))); "
I don't see anything resulting in a zero within the equation. I'm not sure why this error is displaying. Thank you.
Vy_o = 0.00001;
Vx_o = 2296;
phi_o = atand(Vx_o/Vy_o);
for i = 1:6
x(i) = (i-1)*200*3;
y(i) = (i-1)*200*3;
Vx(i) = (sqrt(Vx_o) - ((k3/2)*x(i)))^2;
t(i) = (x(i)/Vx_o)*sqrt(Vx_o/Vx(i));
phi(i) = atand(tan(phi_o)+((g*t(i))/Vx_o)*((1/3)*((Vx_o/Vx(i)+ sqrt((Vx_o/Vx(i)))+1))));
Risposta accettata
Cris LaPierre
il 13 Nov 2020
This error means that your index variable i is either
- negative
- zero
- not an integer
Check your code that you did not include and see if you modify the value of i somewhere before getting to line 38.
3 Commenti
Cris LaPierre
il 13 Nov 2020
Modificato: Cris LaPierre
il 13 Nov 2020
The line below 38 will not cause an error to appear in line 38.
Try sharing all 38 lines of your code, rather than just the one or two around the error. If you want, you can attach your script using the paperclip icon.
Più risposte (1)
Varun Krishna
il 31 Ago 2023
t=0:0.01:2;
x(t)=3.*sin(10.*pi.*t).*exp(-2.*t);
1 Commento
Steven Lord
il 31 Ago 2023
There's no such thing as element 0 or element 0.01 of an array in MATLAB. Replace x(t) with just x. Or if you want to create a function that can be evaluated for different values of t, make x an anonymous function.
t=0:0.01:2;
x=3.*sin(10.*pi.*t).*exp(-2.*t);
y = @(t) 3.*sin(10.*pi.*t).*exp(-2.*t);
isequal(x, y(t)) % evaluate y at the points in t
Vedere anche
Categorie
Scopri di più su Matrix Indexing in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!