Error: Array indices must be positive integers or logical values

13 vues (au cours des 30 derniers jours)
Trine Høy Oddershede
Trine Høy Oddershede le 5 Mar 2021
%% Inputs
Q = 0.16; %[m^3/s] flowraten
r_2 = 0.25; %[m]Ydre radius
D_2 = 0.50 %[m]Ydre diameter
b_2 = 0.5 %[m]Blad højden
beta_2 = 75 %[grader] vinklen
U_2 = (r_2 * omega) * 2*pi * 1/60
%Head
H_plot = zeros(50,1);
for Q = 1:1:50;
H = (U_2^2*Q/g - U_2/(pi*D_2*b_2*g*tand(beta_2))); % [m] Beregning af head
H_plot(i)= H;
i = i+1;
end
why do i get this error message: Array indices must be positive integers or logical values
  2 commentaires
Stephen23
Stephen23 le 5 Mar 2021
"why do i get this error message: Array indices must be positive integers or logical values"
Because you do not define i, and so it defaults to the imaginary unit (which is not a valid index).
Note that it is usually much clearer to loop over an index variable rather than looping over data (e.g. Q). Note that you define Q twice in your code, which is unlikely to be intentional.
Most likely you can replace that loop with vectorized code:

Connectez-vous pour commenter.

Réponses (1)

KALYAN ACHARJYA
KALYAN ACHARJYA le 5 Mar 2021
Q = 0.16; %[m^3/s] flowraten
r_2 = 0.25; %[m]Ydre radius
D_2 = 0.50 %[m]Ydre diameter
b_2 = 0.5 %[m]Blad højden
beta_2 = 75 %[grader] vinklen
%Define Omega and g
omega=
g=
Remaining code (Loop can be avoided here)
U_2=(r_2 * omega) * 2*pi * 1/60
Q = 1:1:50;
H = (U_2^2*Q./g - U_2/(pi*D_2*b_2*g*tand(beta_2)));
plot(H,Q);

Catégories

En savoir plus sur Resizing and Reshaping Matrices 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!

Translated by