Sous-sections
- for var=exp, inst., end
- boucle sur les colonnes de exp
- for var=1:n, inst, end
- boucle classique de 1 à n
Un premier exemple
X=rand(1,5);
S=0; for K=X, S=S+K^2, end;
qui peut s'écrire plus classiquement
X=rand(1,5);
S=0; for i=1:length(X), S=S+X(i)^2, end;
En général, on peut éviter les boucles explicites
- Exemple
- calcul d'un résidu partiel des lignes 2 à 4 d'un système
5*5
que l'on peut écrire plus efficacement
for i=2:4, R(i)=B(i)-A(i,1:5)*X(1:5), end
ou encore
R(2:4)=B(2:4)-A(2:4,1:5)*X(1:5);
- if cond , inst1 ,else inst2, end
- test classique (possibilité
de elseif)
if x<0, y=x, else, y=-x, end
- valeur logique:
- 0=faux, 1=vrai
- opérateurs logiques:
- & (et), | (ou), ~ (négation)
- opérateurs relationnels:
- <, <= ,> ,>= ,== ,~=
- fonctions logiques:
- any(Y==1), all(X==0)
- switch var, case val1, exp1; case val2, exp2; ...;otherwise, exp; end
-
- while cond, inst., end
- exécute les instructions tant que la
cdt est vrai
- continue
- passage à l'itération suivante
- break
- arrêt de la boucle interne
Equivalence avec la notion de structure en C
- example: structure maillage E.F.
- geo.nn
- nbre de noeud NN
- geo.ne
- nbre d'elts NE
- geo.XY
- coordonnées X et Y des noeuds = tableau (2,NN)
- geo.TBC
- table de connection des elts = tableau (3*NE)
Pr. Marc BUFFAT
marc.buffat@univ-lyon1.fr
2007-02-08