Vous êtes sur la page 1sur 53

2015 / 2016

Module doctoral

Intervenant : Ahmed CHEMORI


LIRMM, UMR CNRS/Université de Montpellier
161, rue Ada 34095
Montpellier, France
FORMATION MATLAB Plan du cours

 Les opérateurs

MATLAB 


Généralités
Opérateurs et opérations sur les matrices
Opérateurs logiques
 Evaluation des expressions
 Les scripts et les m-files
 Les scripts
 Les entrées/sorties
 Les formats d’affichage
 Les pauses
 Les structures algorithmiques
 Les expressions logiques et tests
 Les boucles
 Les fonctions
 Les fonctions
 Quelques règles et propriétés 2
Intervenant : Ahmed CHEMORI
FORMATION MATLAB

Opérateurs

Scripts & m-files

Les opérateurs
Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 3


FORMATION MATLAB Les opérateurs

 Un des avantages de MATLAB est de proposer une syntaxe très simple pour traduire
des calculs matriciels.
Opérateurs  Les opérateurs sont représentés par les mêmes symboles (à une ou deux exceptions
prés) que ceux utilisés communément en algèbre linéaire.
 Mieux, ils opèrent directement sur les matrices (par exemple, il n’est pas nécessaire
d’écrire des boucles pour effectuer la somme ou le produit de deux matrices).
Scripts & m-files
 On notera qu’à certains opérateurs (appliqués aux vecteurs et matrices) est associé un
opérateur pointé, * et .* par exemple.
 De façon générale, l’opérateur pointé correspond à une opération semblable à celle
Algorithmique représentée par l’opérateur non pointé, mais appliquée non pas "matriciellement" mais
“terme à terme".

 EXMPLE :
Fonctions * est l’opérateur matriciel alors que .* est l’opérateur du produit ‘terme à terme’.

Intervenant : Ahmed CHEMORI 4


FORMATION MATLAB Les opérateurs

 Voici les opérateurs proposés par Matlab classés par ordre de priorité décroissante :
– Puissance et transposition
Opérateurs
 La puissance (l’exponentiation) ^ et .^
 la conjugaison ’ et la transposition .’
– Opérateurs multiplicatifs
 les produits * et .*,
 les divisions à droite /, ./ et à gauche \, .\
Scripts & m-files
– Opérateurs additifs et de négation
 les opérateurs additifs unaire et binaires + et -
 la négation ~
– Opérateurs booléens avec par ordre de priorité :
Algorithmique  les opérateurs de comparaison
o <, >, <= et >=
o égalité ==, non égalité ~=
 puis les opérateurs logiques
Fonctions o et logique &
o ou logique |
o et logique court-circuité &&
o ou logique court-circuité ||
Intervenant : Ahmed CHEMORI 5
FORMATION MATLAB Opérateurs et opérations sur les matrices

A et B sont deux matrices et c est un nombre


Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 6


FORMATION MATLAB Opérateurs et opérations sur les matrices

 EXEMPLES :

Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 7


FORMATION MATLAB Opérateurs et opérations sur les matrices

 On considère une matrice booléenne qui désignera une matrice (un tableau) dont les
éléments ont pour valeur 0 ou 1.
Opérateurs  0 représente la valeur logique ‘false’ et 1 représentant la valeur ‘true’.
 La fonction islogical teste le caractère booléen d’une matrice.
 EXEMPLES :

Scripts & m-files

Algorithmique

Fonctions

N1 et N2 sont des matrices booléennes


Intervenant : Ahmed CHEMORI 8
FORMATION MATLAB Opérateurs et opérations sur les matrices

 Il en est de même pour les autres opérateurs de comparaison op : >, <, >=, <=
 Le résultat de l’évaluation de A op B est une matrice de même taille dont les
Opérateurs éléments sont définis par : Aij op Bij

 EXEMPLES :

Scripts & m-files Il est possible


de transformer
une matrice
quelconque en
Algorithmique
une matrice
booléenne
grâce à la
commande
logical
Fonctions

Intervenant : Ahmed CHEMORI 9


FORMATION MATLAB Opérateurs logiques

 On considère deux matrices M1 et M2 de même format, évaluons M1 & M2

Opérateurs

Scripts & m-files

Algorithmique

 MATLAB évalue sans problème M1 & M2 bien que M1 et M2 ne soient pas des
matrices booléennes
Fonctions  Le résultat de l’évaluation est une matrice booléenne (avant l’évaluation MATLAB a
transformé les deux matrices en matrice booléennes en suivant la règle usuelle, puis a
effectué l’opération logique terme à terme.
 Il en est de même pour les autres opérateurs logiques |, || , &&
Intervenant : Ahmed CHEMORI 10
FORMATION MATLAB Evaluation des expressions

 Les expressions sont évaluées de la gauche vers la droite.


 Ces évaluations sont effectuées selon l’ordre de priorité indiqué précédemment
Opérateurs  Pour des opérateurs de même ordre de priorité, la règle est comme en mathématiques,
celle de l’associativité à gauche.
 Quand on frappe entrée on déclenche l’évaluation de l’expression.
 La valeur de l’expression évaluée est affichée sous la ligne courante
 En l’absence d’affectation explicite, le résultat est automatiquement affecté à une
Scripts & m-files
variable-système générique appelée ans (pour answer).
 EXEMPLES :

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 11


FORMATION MATLAB

Opérateurs

Scripts & m-files

Scripts et m-files
Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 12


FORMATION MATLAB Les scripts

 Un script est une séquence d’expressions ou de commandes.


 Un script peut se développer sur une ou plusieurs lignes.
Opérateurs  Les différentes expressions ou commandes doivent être séparées par une virgule, un
point-virgule ou par le symbole de saut de ligne qui en ligne de commande est
constitué du symbole de continuation ... suivis de la touche entrée
 La présence du symbole de continuation inhibe le mécanisme d’évaluation déclenché
Scripts & m-files par la frappe de la touche entrée.
 Les expressions sont évaluées dans leur ordre d’écriture.
 Seule la valeur des expression suivie d’une virgule ou d’un saut de ligne est affichée.
 La valeur des expressions suivies d’un point-virgule n’est pas affichée.
Algorithmique  EXEMPLES :

Fonctions

Intervenant : Ahmed CHEMORI 13


FORMATION MATLAB Les scripts

 Écrire un script est assez fastidieux


 MATLAB permet d’enregistrer le texte d’un script sous forme de fichier de texte
Opérateurs appelé m-file,
 A ne pas confondre avec les fichiers de données évoqués précédemment qui sont
des fichiers binaires permettant d’enregistrer des valeurs.
 Les m-files permettent d’enregistrer les scripts sous forme de fichiers-texte et
Scripts & m-files servent en particulier à définir de nouvelles fonctions.
 Une grande partie des fonctions prédéfinies de MATLAB sont stockées sous forme de
m-files dans la toolbox matlab.
 Les m-files peuvent être crées par n’importe quel éditeur. Cependant, dans les
Algorithmique versions récentes de MATLAB il existe un éditeur intégré que l’on peut appeler à
partir du menu file ou à partir de la barre de menu de la fenêtre de commande (avec la
commande edit).

Fonctions
>> edit

Intervenant : Ahmed CHEMORI 14


FORMATION MATLAB Les scripts

 Dans la fenêtre de l’éditeur, tapez les lignes de commande suivantes :


%----------------------------------------
Opérateurs
% Mon premier script : test.m
%----------------------------------------
x = 1.125;
y = pi;
z = sin(y)+x
Scripts & m-files

 Sauvegarder le fichier dans le répertoire de travail sous le nom test.m

Editeur de la version R2014b


Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 15


FORMATION MATLAB Les scripts

 Pour exécuter le script contenu dans un m-file, il suffit de taper le nom de ce m-file
dans la fenêtre de commande suivi de < entrée >
Opérateurs  Exécuter le script de l’exemple précédent:

Scripts & m-files

 La présence d’un point-virgule ; à la fin des deux premières lignes du script a


Algorithmique empêché l’affichage des valeurs de x et y.
 Le résultat de la troisième ligne (z) est affiché en l’absence d’un point virgule.
 Les lignes de commentaires sont précédées du caractère % (trois premières ligne du
script précédent)
Fonctions Commentaires

 La commande type nom-fichier affiche le m-file nom-fichier.m dans la


Intervenant : Ahmed CHEMORI
fenêtre de commande 16
FORMATION MATLAB Les scripts

 EXEMPLES :

Opérateurs

Scripts & m-files

Algorithmique

 La commande date retourne la date


Fonctions

Intervenant : Ahmed CHEMORI 17


FORMATION MATLAB Les entrées / Sorties

 La fonction input permet lire une valeur depuis le clavier.


 Voici la syntaxe de cette commande selon deux cas de figure :
Opérateurs
Pour les valeurs numériques :
>> n = input(’message’)

Scripts & m-files Affiche message et affecte à la variable n la valeur numérique entrée au clavier.

Pour les chaînes de caractères :


>> str = input(’message’,’s’)
Algorithmique
Affiche message et affecte à la variable str la valeur entrée au clavier considérée
comme une chaîne de caractères.

Fonctions

Intervenant : Ahmed CHEMORI 18


FORMATION MATLAB Les entrées / Sorties

 EXEMPLES :

Opérateurs

Sans les points-virgules

Scripts & m-files

Algorithmique

Avec les points-virgules

Fonctions

Chaîne de caractères

Intervenant : Ahmed CHEMORI 19


FORMATION MATLAB Les entrées / Sorties

 La fonction menu génère une fenêtre contenant un menu dans lequel l’utilisateur doit
choisir une option
Opérateurs  La syntaxe d’une telle fonction est la suivante :

>> result = menu(’titre’, ’opt1’, ’opt2’, ..., ’optn’)


Scripts & m-files

 La valeur affectée à la variable result est égale au numéro de l’option choisie


 Menu est souvent utilisé en relation avec la structure algorithmique switch-case (qu’on
Algorithmique
abordera prochainement).
 L’exemple ci-après illustre l’utilisation de cette fonction menu

Fonctions

Intervenant : Ahmed CHEMORI 20


FORMATION MATLAB Les entrées / Sorties

 EXEMPLES :

Opérateurs

Scripts & m-files

Algorithmique

 Selon la sélection de l’utilisateur, la variable choix prend 4 valeurs possibles :


Fonctions  1  s’il sélectionne ‘Petite’
 2  s’il sélectionne ‘Moyenne’
 3  s’il sélectionne ‘Grande’
Intervenant : Ahmed CHEMORI
 4  s’il sélectionne ‘Quitter’
21
FORMATION MATLAB Les entrées / Sorties

 Pour afficher la valeur d’une variable, il suffit d’évaluer une expression réduite au
nom de cette variable
Opérateurs
 La fonction num2str(variable) où variable
 EXEMPLES : est un nombre, convertit sa valeur numérique en valeur
littérale

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 22


FORMATION MATLAB Les entrées / Sorties

 La fonction disp(str)où str est une chaîne de caractères ou une matrice, affiche
la valeur de cette chaîne de caractère ou matrice sans faire référence au nom de la
Opérateurs variable.
 Cette commande peut être combinée avec num2str pour afficher les valeurs des
expressions numériques.
 EXEMPLES :
Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 23


FORMATION MATLAB Les format d’affichage

 Matlab permet de choisir entre plusieurs modes d’affichage avec la commande


format
Opérateurs  Ce choix n’interfère pas avec le type des valeurs numériques affichées qui est toujours
le type double
 Voici un tableau qui récapitule les modes d’affichage proposés

Scripts & m-files

Algorithmique

Fonctions

 Par la suite on va voir des exemples de choix de format d’affichage


Intervenant : Ahmed CHEMORI 24
FORMATION MATLAB Les format d’affichage

 EXEMPLES :

Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 25


FORMATION MATLAB Les pauses

 La commande pause permet d’introduire une pause dans l’exécution d’un m-file.
 Cette commande peut s’insérer selon deux syntaxes :
Opérateurs  Sans argument pause suspend l’exécution jusqu’à ce que l’utilisateur presse sur
une touche
 La commande pause(n) suspend l’exécution pendant n secondes.
 EXEMPLES : Saisir le code de script suivant puis sauver le dans le m-file test2.m
Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI


 Exécuter le m-file test2.m dans la fenêtre de commande 26
FORMATION MATLAB

Opérateurs

Scripts & m-files

Structures algorithmiques
Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 27


FORMATION MATLAB Expressions logiques et tests

 Les expressions booléennes (logiques) sont utilisées dans certaines structures


algorithmiques
Opérateurs

Scripts & m-files

Opérateurs logiques dans les tests 


Algorithmique  Un test est une alternative entre deux commandes (ou groupe de commandes ) Matlab
sélectionnées suivant le résultat d'une opération logique.

 Le résultat d'une expression logique est une variable logique ou booléenne qui vaut 1
Fonctions pour VRAI et 0 pour FAUX.

 Dans Matlab on dispose du classique if-else agrémenté du elseif parfois bien


utile.
Intervenant : Ahmed CHEMORI 28
FORMATION MATLAB Expressions logiques et tests

 La forme la plus simple de la structure IF-else est la suivante :


if (expression logique)
Opérateurs script (séquence d’instructions)
end

Scripts & m-files


 Quand il y a plus de deux alternatives, on peut utiliser la structure suivante :

if (exp1)
script1 (évalué si exp 1 est vraie)
Algorithmique
elseif (exp2)
script2 (évalué si exp 2 est vraie)
elseif (exp3)
. . .
Fonctions else
script (évalué si aucune expression n’est vraie)
end
Intervenant : Ahmed CHEMORI 29
FORMATION MATLAB Expressions logiques et tests

 EXEMPLE1 : Voici un exemple à partir de la fenêtre de commande

Opérateurs

Scripts & m-files

Résultats d’exécution

Algorithmique
 EXEMPLE2 : Saisir le script suivant puis sauver le dans le m-file test3.m
%----------------------------------------
% Script / structure IF : test3.m
%----------------------------------------
Fonctions x = input(‘Entrez une valeur numérique : ‘);
if (x>0)
disp(‘La valeur saisie est positive’)
Intervenant : Ahmed CHEMORI
end
30
FORMATION MATLAB Expressions logiques et tests

 EXEMPLE3 : Saisir le script suivant puis sauver le dans le m-file test4.m


%----------------------------------------
Opérateurs % structure IF multiple: test4.m
%----------------------------------------
x = input(‘Entrez une valeur numérique : ‘);
if (x>0)
disp(‘La valeur saisie est positive’)
Scripts & m-files elseif (x<0)
disp(‘La valeur saisie est négative’)
Else
disp(‘La valeur saisie est nulle’)
end
Algorithmique

Fonctions Résultats d’exécution

Intervenant : Ahmed CHEMORI 31


FORMATION MATLAB Expressions logiques et tests

 La commande switch donne une alternative à l’utilisation d’une séquence


d’instructions conditionnées pour effectuer un choix multiple en cascade.
Opérateurs  Elle permet de gérer plus élégamment les tests portant sur un seul critère pouvant
prendre plus de deux valeurs entières, voici sa syntaxe :

Switch Variable
Scripts & m-files case Cst_1
script 1 (séquence d’instructions)
case Cst_2
script 2 (séquence d’instructions)
Algorithmique .
.
.
case Cst_n
script n (séquence d’instructions)
Fonctions
otherwise
script (séquence d’instructions) par défaut
end
Intervenant : Ahmed CHEMORI 32
FORMATION MATLAB Expressions logiques et tests

 L’argument variable est de type numérique ou chaîne de caractères ;


 Cst_1, …, Cst_n sont des constantes numérique ou des constantes chaîne de
Opérateurs caractères
 Script i est une séquence d’instructions à exécuter si variable == Cst_i.
 EXEMPLE : Saisir le script suivant puis sauver le dans le m-file test5.m
%----------------------------------------
Scripts & m-files % structure choix multiple: test5.m
%----------------------------------------
x = input(‘Entrez une valeur numérique : ‘);
switch rem(x,3) % reste de la division de x par 3
case 0, disp(’Multiple de 3’)
Algorithmique
case 1, disp(’1 modulo 3’)
case 2, disp(’2 modulo 3’)
otherwise, disp(’Nombre négatif’)
end
Fonctions

Résultats d’exécution

Intervenant : Ahmed CHEMORI 33


FORMATION MATLAB Les boucles

 Il y a deux types de boucles en Matlab : les boucles for et les boucles while.
 Une première possibilité pour exécuter une séquence d’instructions de manière répétée
Opérateurs consiste à effectuer une boucle pour les valeurs d’un indice, incrémenté à chaque
itération, variant entre deux bornes données. Ce processus est mis en œuvre par la

 Voici la syntaxe de la boucle for


Scripts & m-files for indice = borne_inf : borne_sup
script (séquence d’instructions)
end

Algorithmique
 indice est une variable appelée l’indice de la boucle ;
 borne_inf et borne_sup sont deux constantes réelles (appelées paramètres de
la boucle) ;
Fonctions  script(séquence d’instructuions) est le traitement à effectuer pour les
valeurs d’indices variant entre borne_inf et borne_sup avec un incrément de 1
(cette séquence est aussi appelée corps de la boucle).
Intervenant : Ahmed CHEMORI 34
FORMATION MATLAB Les boucles

 Interprétation et remarques :
 Si borne_inf est plus petit ou égal à borne_sup, la séquence d’instructions est
Opérateurs
exécuté (borne_sup − borne_inf + 1) fois, pour les valeurs de la variable
indice égales à borne_inf, borne_inf + 1, ・ ・ ・ , borne_sup
− 1, borne_sup.
Scripts & m-files  Si borne_inf est strictement plus grand que borne_sup, on passe à l’instruction
qui suit immédiatement l’instruction de fin de boucle (end).
 L’indice de boucle ne prend pas nécessairement des valeurs entières. D’autre part il
Algorithmique
n’est pas nécessaire que l’indice de la boucle apparaisse dans le corps de la boucle ;
par contre il est interdit de modifier sa valeur s’il apparaît.
 Il est possible d’imbriquer des boucles mais elles ne doivent pas se recouvrir. On peut
utiliser un incrément (pas) autre que 1 (valeur par défaut).
Fonctions
 La syntaxe est alors borne_inf : pas : borne_sup.
 Le pas peut être négatif (attention a bien gérer la borne supérieure)

Intervenant : Ahmed CHEMORI 35


FORMATION MATLAB Les boucles

 EXEMPLE 1 : Saisir le script suivant puis sauver le dans le m-file test6.m


%----------------------------------------
Opérateurs % Boucle for: test6.m
%----------------------------------------
for k=1:5
disp ([‘k= : ‘, num2str(k)]);
end
Scripts & m-files
for r=1.1:-0.1:0.75
disp([’r = ’, num2str(r)]);
end

Algorithmique

Résultats d’exécution
Fonctions

Intervenant : Ahmed CHEMORI 36


FORMATION MATLAB Les boucles

 EXEMPLE 2 : Boucles for imbriquées test7.m


%----------------------------------------
Opérateurs % Boucle for: test7.m
%----------------------------------------
for l=1:3
for k=1:3
A(l,k)= l^2 + k^2 ;
Scripts & m-files
end
end
disp('La matrice A= '), disp(A)

Algorithmique

Résultats d’exécution
Fonctions

Intervenant : Ahmed CHEMORI 37


FORMATION MATLAB Les boucles

 Une seconde possibilité pour exécuter une séquence d’instructions de manière répétée
consiste à effectuer une boucle tant qu’une condition reste vérifiée.
Opérateurs  On arrête la boucle dès que cette condition n’est plus satisfaite.
 Ce processus est mis en œuvre par la boucle while

 Voici la syntaxe de la boucle while


Scripts & m-files while expression logique
script (séquence d’instructions)
end

 expression logique est une expression dont le résultat peut être vrai ou faux ;
Algorithmique
 Script (séquence d’instructions) est une séquence d’instructions à
exécuter tant que expression logique est vraie.
 Tant que expression logique est vraie la séquence d’instructions est exécutée sous
forme d’une boucle. Dès que l’expression logique devient faux, on passe à
Fonctions
l’instruction qui suit immédiatement l’instruction de fin de boucle (end).
 Il est impératif que la séquence d’instructions agisse sur le résultat de l’expression
logique sans quoi on boucle indéfiniment !
Intervenant : Ahmed CHEMORI 38
FORMATION MATLAB Les boucles

 EXEMPLE 1 : Saisir le script suivant puis sauver le dans le m-file test8.m


%----------------------------------------
Opérateurs % Boucle while : test8.m
%----------------------------------------
n = 4; k = 1; nfac = 1;
while k <= n
nfac = nfac*k;
Scripts & m-files
k = k+1;
end
nfac

Algorithmique

Résultats d’exécution
Fonctions

Intervenant : Ahmed CHEMORI 39


FORMATION MATLAB Interruption d’une boucle

 Il est possible de provoquer une sortie prématurée d’une boucle de contrôle.


 L’instruction break permet de sortir d’une boucle for ou d’une boucle while.
Opérateurs  L’exécution se poursuit alors séquentiellement à partir de l’instruction suivant le mot
clé end fermant la boucle.
 En cas de boucles imbriquées, on interrompt seulement l’exécution de la boucle
intérieure contenant l’instruction break.
Scripts & m-files
 L’instruction return provoque un retour au programme appelant (ou au clavier).
 Les instructions suivant return ne sont donc pas exécutées. L’instruction return est
souvent utilisée conjointement avec une instruction conditionnée par exemple pour
tester dans le corps d’une fonction si les paramètres d’entrée ont les valeurs attendues.
 L’instruction error permet d’arrêter un programme et d’afficher un message
Algorithmique
d’erreur.
 La syntaxe est error(’ message d’’erreur ’).
 L’instruction warning permet d’afficher un message de mise en garde sans
suspendre l’exécution du programme.
Fonctions  La syntaxe est warning(’ message de mise en garde’).
 Il est possible d’indiquer à matlab de ne pas afficher les messages de mise en garde
d’un programme en tapant warning off dans la fenêtre de commandes. On rétablit
Intervenant : Ahmed CHEMORI
l’affichage en tapant warning on.
40
FORMATION MATLAB

Opérateurs

Scripts & m-files

Les fonctions
Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 41


FORMATION MATLAB Les fonctions

 Les fichiers de fonctions ont deux rôles. Ils permettent à l’utilisateur de définir des
fonctions (appelées fonctions utilisateur) qui ne figurent pas parmi les fonctions
Opérateurs Matlab incorporées et de les utiliser de la même manière que ces dernières.
 Ils sont également un élément important dans la programmation d’applications où les
fonctions jouent le rôle des fonctions et procédures des langages de programmation
usuels.
 Les fonctions sont des enchaînements de commandes Matlab regroupées sous un nom
Scripts & m-files
de fonction permettant de commander leur exécution.
 On peut mettre dans une fonction un groupe de commandes destine a être exécuté
plusieurs fois au cours du calcul avec éventuellement des valeurs de paramètres
différents.
Algorithmique
 La fonction peut aussi être chargée de réaliser un calcul avec un certain algorithme,
qui pourra être remplacé éventuellement par un autre plus rapide ou plus précis, en
changeant simplement le nom de la fonction dans le programme appelant.
 Enfin, dès que le programme est un peu long et compliqué, il est souhaitable de le
Fonctions découper en fonctions, correspondant a des étapes pour améliorer la lisibilité et la
compréhension de l'algorithme.
 Les fonctions peuvent être inline c.à.d dans le corps du programme appelant ou
Intervenant : Ahmed CHEMORI
bien dans des fichiers externes indépendants m-file.
42
FORMATION MATLAB Les fonctions

 Dès que la fonction nécessite plusieurs instructions, il vaut mieux la définir dans un
fichier à part à l'aide de l‘éditeur de texte.
Opérateurs  De manière générale, la syntaxe de définition d'une fonction externe est la suivante :
function [vars1,vars2,…,varsn] = nom_fonction(vare1,vare2,…varem)
Séquence d’instructions
 Vars1, vars2, … varsn sont les variables de sortie de la fonction
Scripts & m-files
 Vare1, vare2, … varen sont les variables d’entrée de la fonction
 Séquence d’instruction est le corps de la fonction
 nom_fonction est le nom de la fonction
 Si la fonction ne possède qu’un seul paramètre de sortie, les crochets sont inutiles.
Algorithmique
 Il est impératif que la fonction ayant pour nom nom_fonction soit enregistrée dans
un fichier de nom nom_fonction.m sans quoi cette fonction ne sera pas visible par
Matlab
 Le passage des paramètres d‘entrée dans les fonctions se fait par valeur. Aussi, même
Fonctions
si elles sont modifiées dans la fonction les valeurs des paramètres ne sont pas
modifiées dans le programme appelant.
 Si une des variables de la procédure n'est pas définie a l'intérieur de celle-ci elle doit
Intervenant : Ahmed CHEMORI obligatoirement être fournie en paramètre d'entrée. 43
FORMATION MATLAB Les fonctions

 EXEMPLE : Saisir le script suivant puis sauver le dans le m-file somme.m


function s = somme(A,B)
Opérateurs %----------------------------------------------------------------
% SOMME(A,B) : Cette fonction permet de calculer la somme de deux
% nombre A et B. Le résultats est retourné dans lma variable s.
%----------------------------------------------------------------
s = A+B;
Scripts & m-files return

Résultats d’exécution

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 44


FORMATION MATLAB Les fonctions

 On peut mettre plusieurs fonctions dans le même M-file mais seule la fonction du
même nom que le fichier m-file peut être utilisée, appelée, à partir de la fenêtre de
Opérateurs commandes ou d'une autre fonction ou d'un script.
 Les autres fonctions éventuellement stockées dans le fichier m-file peuvent s'appeler
entre elles mais ne sont pas visibles de l'extérieur.
 Si la fonction dispose de plus d’un paramètre de sortie, il faut récupérer leurs valeurs
dans des variables dans le script d'appel.
Scripts & m-files
 Les fonctions Inline : Une fonction ne comportant qu'un petit nombre d'instructions
peut être définie directement dans la fenêtre de commandes de la manière suivante
(sans utiliser un m-file auxiliaire) :
Algorithmique Nom_fonction=inline(‘expression‘,’var1’,’var2’, …)
 L’expression mathématique qui constitue le corps de la fonction ainsi que les
variables sont considérées par MATLAB comme des chaines de caractères et doivent
donc être tapées entre apostrophes.
Fonctions  La déclaration des variables peut être optionnelle dans la définition des fonctions
Inline, MATLAB effectuant une déclaration implicite de celles-ci. Cette facilité,
source d’ambiguïtés dans le cas de fonctions de plusieurs variables n’est pas à
recommander dans ce cas.
Intervenant : Ahmed CHEMORI 45
FORMATION MATLAB Les fonctions

 EXEMPLE : Taper la fonction inline suivante dans la fenêtre de commande

Opérateurs >> f = inline('x.^2 + x.*y', 'x', 'y')

Résultats d’exécution

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 46


FORMATION MATLAB Quelques règles et propriétés

 Le nom de la fonction et celui du fichier m-file qui en contient la définition doivent


être identiques. Ce fichier est le fichier m-file associé à la fonction.
Opérateurs  Chaque fonction possède son propre espace de travail et toute variable apparaissant
dans le corps d’une fonction est locale à celle-ci, à moins qu’elle ait été déclarée
comme globale au moyen du qualificateur global précédant le nom de la variable dans
tous les espaces de travail où cette variable est utilisée.
Scripts & m-files  Il est préférable que les fonctions soient vectorisées comme le sont les fonctions
prédéfinies. Il faut dans ce cas alors n’utiliser que des opérateurs pointés dans la
définition de la fonction.
 L’exécution d’une fonction s’achève :
Algorithmique  lorsque la fin du script définissant la fonction a été atteint ;
 lorsque une commande return ou un appel de la fonction error a été
rencontré :
o return termine immédiatement l’exécution de la fonction sans que la fin du
script définissant celle-ci ait été atteint,
Fonctions
o error(’message’) procède de même, mais en plus, affiche le contenu
de ’message’.

Intervenant : Ahmed CHEMORI 47


FORMATION MATLAB Quelques règles et propriétés

 Certaines commandes spéciales ne peuvent s'utiliser qu'en relation à une fonction,


 Par exemple nargin, donne le nombre de paramètres d‘entrée passés à l'appel de la
Opérateurs fonction.
 EXEMPLE : Saisir le script suivant puis sauver le dans le m-file testarg1.m

function c = testarg1(a,b)
Scripts & m-files if (nargin == 1)
c = 2*a; Résultats d’exécution 
elseif (nargin == 2)
c = a + b;
end
Algorithmique
 La commande nargin peut aussi
être utilisée pour connaître le
nombre prévu d'arguments d'entrée
Fonctions

 La commande nargout s’utilise de la même manière pour les arguments de sortie.


Intervenant : Ahmed CHEMORI 48
FORMATION MATLAB Exercices

Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 49


FORMATION MATLAB Exercices

Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 50


FORMATION MATLAB Exercices

Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 51


FORMATION MATLAB Exercices

Opérateurs

Scripts & m-files

Algorithmique

Fonctions

Intervenant : Ahmed CHEMORI 52


FORMATION MATLAB Quelques références bibliographiques

MATLAB

Intervenant : Ahmed CHEMORI 53

Vous aimerez peut-être aussi