for i=n0:n1 suite d'instructions endoù n0 et n1 sont des variables préexistantes ou des valeurs numériques particulières. La boucle commence par affecter n0 à la variable i. Ensuite, si i<=n1, elle exécute la suite d'instructions et elle incrémente la variable i de 1. Puis, si i<=n1, elle ré-exécute la suite d'instructions et réincrémente i de 1. Ainsi de suite jusqu'à ce que i soit strictement supérieur à n1.
A l'intérieur de la boucle, il n'est pas recommandé de modifier la valeur de l'indice d'itération i. Cela peut créer une boucle sans fin.
Il est possible d'emboîter des boucles :
for i=m0:m1 suite d'instructions for j=n0:n1 suite d'instructions end suite d'instructions end
Dans un langage de programmation matriciel, il est déconseillé d'utiliser des boucles pour effectuer des opérations pouvant être réalisées par des calculs matriciels. En effet, dans ce cas, les boucles sont beaucoup plus coûteuse en temps de calcul. Les boucles ne devront donc être utilisées qu'en dernier recours !
A titre d'exemple, il est instructif de comparer les temps de calcul pour une multiplication matricielle sans et avec l'utilisation de boucles :
n1=100; n2=200; n3=100; A=rand(n1,n2); B=rand(n2,n3); disp('temps d'exécution sans boucle') tic, C=A*B; toc, disp('temps d'exécution avec boucle') tic C=zeros(size(A,1),size(B,2)); for i=1:size(A,1) for j=1:size(B,2) c=0; for k=1:size(A,1) c=c+A(i,k)*B(k,j); end C(i,j)=c; end end toc