Error: Array indices must be positive integers or logical values

2 views (last 30 days)
%% 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 Comments
Stephen23
Stephen23 on 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:

Sign in to comment.

Answers (1)

KALYAN ACHARJYA
KALYAN ACHARJYA on 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);

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!