36
1 Ce qu’on ne peut ignorer
beaucoup plus flexibles que les scripts. Une fonction nom est en général
définie dans un m-fichier (appelé génériquement nom.m) qui commence
par une ligne de la forme :
function function [ out1 ,... ,outn ]= name ( in1 ,... ,inm )
où out1,...,outn sont les variables de sortie et in1,...,inm sont les
variables d’entrée.
Le fichier suivant, nommé det23.m, définit une nouvelle fonction,
det23, qui calcule le déterminant d’une matrice d’ordre 2 ou 3 avec la
formule donnée en Section 1.4 :
function det= det23 (A )
% DET23 calcule le d e t e rmi nant d ’ une matrice carrée
% d ’ ordre 2 ou 3
[n , m ]= size ( A );
if n ==m
if n ==2
det = A (1 ,1)*A (2 ,2) -A (2 ,1)*A (1 ,2);
elseif n == 3
det = A (1 ,1)*det23 (A ([2 ,3] ,[2 ,3])) -...
A (1 ,2)*det23 (A ([2 ,3] ,[1 ,3]))+...
A (1 ,3)*det23 (A ([2 ,3] ,[1 ,2]));
else
disp ( ’ S e u l emen t des matrices 2 x2 ou 3 x3 ’);
end
else
disp ( ’ S e u l ement des matrices carrées ’);
end
return
Remarquer l’utilisation des trois points ... pour indiquer que l’instruc...
tion se poursuit à la ligne suivante. Noter aussi que le caractère % débute
%
une ligne de commentaires. L’instruction A([i,j],[k,l]) permet de
construire une matrice 2 × 2 dont les éléments sont ceux de la matrice
originale A situés aux intersections des i-ème et j-ème lignes avec les
k-ème et l-ème colonnes.
Quand une fonction est appelée, MATLAB crée un espace de travail
local. Les commandes situées à l’intérieur de la fonction ne peuvent pas se
référer aux variables de l’espace de travail global (interactif) à moins que
ces variables ne soient passées comme paramètres d’entrée. Les variables
utilisées dans une fonction sont effacées à la fin de son exécution, à moins
qu’elles ne soient retournées comme paramètres de sortie.
Remarque 1.2 (Variables globales) Comme dit plus haut, chaque fonction MATLAB dispose de ses propres variables locales, qui sont disjointes de
celles des autres fonctions et de celles de l’espace de travail. Cependant, si
plusieurs fonctions (et éventuellement l’espace de travail) déclarent une même
variable comme global, alors elles partagent toutes une copie de cette variable.
global
Toute modification de la variable dans une des fonctions se répercute à toutes
les fonction déclarant cette variable comme globale.
L’exécution d’une fonction s’arrête généralement quand la fin de son
code source est atteinte. Néanmoins, l’instruction return peut être utilireturn
1 Ce qu’on ne peut ignorer
beaucoup plus flexibles que les scripts. Une fonction nom est en général
définie dans un m-fichier (appelé génériquement nom.m) qui commence
par une ligne de la forme :
function function [ out1 ,... ,outn ]= name ( in1 ,... ,inm )
où out1,...,outn sont les variables de sortie et in1,...,inm sont les
variables d’entrée.
Le fichier suivant, nommé det23.m, définit une nouvelle fonction,
det23, qui calcule le déterminant d’une matrice d’ordre 2 ou 3 avec la
formule donnée en Section 1.4 :
function det= det23 (A )
% DET23 calcule le d e t e rmi nant d ’ une matrice carrée
% d ’ ordre 2 ou 3
[n , m ]= size ( A );
if n ==m
if n ==2
det = A (1 ,1)*A (2 ,2) -A (2 ,1)*A (1 ,2);
elseif n == 3
det = A (1 ,1)*det23 (A ([2 ,3] ,[2 ,3])) -...
A (1 ,2)*det23 (A ([2 ,3] ,[1 ,3]))+...
A (1 ,3)*det23 (A ([2 ,3] ,[1 ,2]));
else
disp ( ’ S e u l emen t des matrices 2 x2 ou 3 x3 ’);
end
else
disp ( ’ S e u l ement des matrices carrées ’);
end
return
Remarquer l’utilisation des trois points ... pour indiquer que l’instruc...
tion se poursuit à la ligne suivante. Noter aussi que le caractère % débute
%
une ligne de commentaires. L’instruction A([i,j],[k,l]) permet de
construire une matrice 2 × 2 dont les éléments sont ceux de la matrice
originale A situés aux intersections des i-ème et j-ème lignes avec les
k-ème et l-ème colonnes.
Quand une fonction est appelée, MATLAB crée un espace de travail
local. Les commandes situées à l’intérieur de la fonction ne peuvent pas se
référer aux variables de l’espace de travail global (interactif) à moins que
ces variables ne soient passées comme paramètres d’entrée. Les variables
utilisées dans une fonction sont effacées à la fin de son exécution, à moins
qu’elles ne soient retournées comme paramètres de sortie.
Remarque 1.2 (Variables globales) Comme dit plus haut, chaque fonction MATLAB dispose de ses propres variables locales, qui sont disjointes de
celles des autres fonctions et de celles de l’espace de travail. Cependant, si
plusieurs fonctions (et éventuellement l’espace de travail) déclarent une même
variable comme global, alors elles partagent toutes une copie de cette variable.
global
Toute modification de la variable dans une des fonctions se répercute à toutes
les fonction déclarant cette variable comme globale.
L’exécution d’une fonction s’arrête généralement quand la fin de son
code source est atteinte. Néanmoins, l’instruction return peut être utilireturn
