next up previous
suivant: boucles while monter: Commandes de programmation classiques précédent: commande switch

boucles for

Les boucles sont des moyens de répéter un ensemble d'instructions. La boucle for se construit de la manière suivante :
for i=n0:n1
  suite d'instructions
end
où 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


next up previous
suivant: boucles while monter: Commandes de programmation classiques précédent: commande switch
Frédéric Richard, Aix-Marseille Université, 2012-11-28