WHILE LOOP program does not work

Please, any one tell me why my program does not work, thank you.
This is my program
a=[7 18 11 5;
2 8 10 13;
3 24 20 12;
21 1 20 17];
[m,n]= size(a);
Re=0;
i=1;
while i<=m;
j=1
while j<=n;
if ((a(i,j)<=15) & (a(i,j)>=4))
Re= Re+ a(i,j);
end
end
end
disp(Re)

1 Commento

In order for people to tell you why your program does not work, you have to tell them what the intended working of the program is.

Accedi per commentare.

 Risposta accettata

Try it without loops, in a more MATLAB-ish vectorized way:
indexesToSum = a>=4 & a<=15
Re = sum(a(indexesToSum))

Più risposte (2)

Matt Fig
Matt Fig il 24 Ott 2012
Modificato: Matt Fig il 24 Ott 2012
You do not increment i or j inside the loops.
i =i+1;
etc. Thus i will always be less than m, and j less than n.

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by