You are on page 1of 26

MATLAB

MATLAB

Eléments de programmation

2eme Année API

Ecole Nationale des Sciences Appliquées – Khouribga

Pr M. Saadi

2022-2023
Pr M. Saadi
 Boucle itérative for

Pr M. Saadi
 Boucle itérative for : exemple
>> s=0; >> sum([1:11].^2) >> p = 1;
>> for i = [1:11] ans = >> for i=[1:11]
s = s + (i*i); 506 p = p*i;
end end
>> s >> p
s= p=
506 39916800
>> prod([1:11])
ans =
39916800

Somme des carrés des entiers Même résultat en utilisant la Produit des nombres de 1 à
de 1 à 11. Remarque: fonction sum qui réalise la 11.
l’utilisation des crochets n’est somme des éléments d’un Même résultat en utilisant la
pas obligatoire pour la vecteur. fonction prod qui opère sur un
définition de expr. vecteur.

L’utilisation des opérations matricielles et


vectorielles augmente la rapidité.
Pr M. Saadi 4
 Boucle itérative while

Pr M. Saadi
 Boucle itérative while : exemple
>> i = 0; >> sum([1:11].^2) >> i=1;
>> sum = 0; ans = >> while (i>0)
>> while(i<=10) 506 i = i+1;
i=i+1; end
sum = sum + (i*i); CTRL-C
end
>> sum
Sum =
506 Même résultat en utilisant Attention: boucle sans fin. Il
la fonction sum qui réalise est toujours possible
la somme des éléments d’interrompre une
Somme des carrés des d’un vecteur. commande matlab en
entiers de 1 à 11. pressant la combinaison de
touches « CTRL » et « C »
L’utilisation des opérations matricielles et
vectorielles augmente la rapidité.

Pr M. Saadi
 Sortir d’une boucle for ou while :
break : la boucle s’arrête immédiatement et rend la main à la fin de la boucle
return : la boucle s’arrête immédiatement et rend la main au programme appelant
(script ou fonction) >> i=0;
>> i = 0; >> while(i>=0 && i~=10)
>> while (i>=0) i=i+1;
i = i+1; end
if (i==10) >> i
break; i=
end 10
end
>> i
i= Même résultat en insérant une condition
10 d’arrêt directement dans le while. Cette
écriture est à privilégier car elle évite
Lorsque i vaut 10, la boucle while est l’utilisation du break.
interrompue.

L’utilisation des opérations matricielles et


vectorielles augmente la rapidité.
Pr M. Saadi
Opérateurs logiques usuels :

Exemples d’utilisation :

Pr M. Saadi
Pour écrire plusieurs instructions à la fois, il est utile d’utiliser des fichiers
scripts ou des fonctions.

Script Fonction
 Suite d’instructions  peut prendre des arguments
 Pas de paramètre d’entrée d’entrée
 Ne renvoie aucune valeur  retourne une ou plusieurs valeurs

 Crée ou modifie des  n’accède pas aux variables de

variables d’environnement l’environnement


 Appels à d’autres scripts ou  les variables locales inaccessibles

d’autres fonctions depuis l’extérieur

Pr M. Saadi
Exemples de script

Pr M. Saadi
Exemples de fonction
Fichier SommeEtProduit.m

function [s,p] = SommeEtProduit (x,y) Arguments d’entrée


s=x+y;
p=x*y;
(end function) Arguments de sortie

Dans la fenêtre de commandes :


>> a = 1 ;
>> b = 2 ; Définition des variables a et b

>> [c , d] = SommeEtProduit ( a, b ) ; Appel et exécution de la fonction


SommeEtProduit ( c=3 , d=2)
>> x Erreur, x n’est pas connue

Le fichier SommeEtProduit.m doit être dans le répertoire courant

Pr M. Saadi
Il est impératif de commenter vos programmes (scripts et fonctions)

Les lignes commentées sont précédées par le caractère %


% ligne de commentaires

En pratique, quelques règles à respecter :


✓Scripts et fonctions : expliquer les différentes étapes de vos programmes

(une ligne, un commentaire)


✓Commentaires additionnels pour les fonctions : décrire les variables
d’entrée, les variables de sortie ainsi que ce que fait votre fonction
Pour la lisibilité, il est impératif d’indenter vos programmes
éditeur Matlab : file/smart indent

Pr M. Saadi
 Editeur de texte sous Matlab :
◦ Menu File>New>M-File
◦ Commande edit :
 edit : ouvre l’éditeur de texte
 edit nomfich : ouvre le fichier nomfich.m dans l’éditeur de texte

 Autres commandes utiles :


◦ Commande what :
liste des noms des fichiers du répertoire courant
◦ Commande type :
type nomfich.m : affiche dans la fenêtre de commandes
le contenu du fichier nomfich.m

Pr M. Saadi
Ce bouton sert à créer un
répertoire.

Utilisez le navigateur de fichier pour aller jusque dans Ce bouton sert à remonter d’un
le répertoire où vous allez sauvegarder les fichiers .m niveau dans la hiérarchie des
répertoires.

Pr M. Saadi
Avec le bouton de droite de la
souris, on fait apparaître un
menu contextuel. Cliquer sur
New > M-File

On peut alors lui donner un


nom, par exemple,
« monscript.m »

Pr M. Saadi Asmaa El Hannani 15


En double-cliquant sur le M-File,
on fait apparaître l’éditeur qui est
intégré dans l’environnement
Matlab.

Pr M. Saadi Asmaa El Hannani 16


Exemple

disp affiche un message à


l’écran.

input demande à l’utilisateur


de rentrer une valeur qui est
ensuite affectée à la variable
age

rand renvoie un nombre


aléatoire entre 0 et 1.

floor arrondit à l’unité


inférieure.

pause permet d’effectuer


une pause dans l’exécution
d’un script. L’exécution est
reprise lorsque l’utilisateur
presse sur une touche du
clavier.
Pr M. Saadi
MATLAB reconnait plusieurs types de
fonctions:
◦ les sous-fonctions;
◦ les fonctions imbriquées;
◦ les fonctions privées;
◦ les fonctions en ligne;

Pr M. Saadi
 Fichier M et sous fonctions :
◦ un fichier M peut contenir le code de plusieurs fonctions :
 la première fonction du fichier sera la fonction principale i.e. la
fonction appelée par le fichier M
 les fonctions suivantes sont les sous fonctions appelées par la
fonction principale
 Remarque :
◦ l’ordre d’apparition des sous fonctions est indifférent du moment que
la fonction principale apparaît en premier
◦ Matlab contrôle si une fonction est (par ordre de priorité) :
1. une sous fonction
2. une fonction privée
3. une fonction standard (prédéfinie)

Pr M. Saadi
Matlab reconnaît la fonction mean comme étant la sous
fonction du M-file newstats.m plutôt que la fonction
standard implémentée dans le « search path »

Pr M. Saadi
 Une sous-fonction est visible:
◦ depuis la fonction principale
◦ depuis une autre sous-fonction

 Portée des variables:


◦ Chaque fonction a son propre espace de travail
◦ Donc elles n’ont pas accès aux mêmes variables
(sauf si global).

 L’aide pour une sous-fonction


◦ est afficher à l’aide de la commande help en
spécifiant le nom de la fonction principale suivi
d’un > puis du nom de la sous-fonction.

Pr M. Saadi
 Un M-file peut contenir la définition d’autres
fonctions que la fonction principale.

 Elles peuvent être définies dans le corps de la


fonction principale, ce sont alors des
fonctions imbriquées.

 Une fonction imbriquée est visible:


◦ depuis sa fonction mère (niveau supérieur);
◦ depuis une fonction sœur (imbriquée au
même niveau);
◦ depuis une fonction fille (imbriquée dans
elle-même).

Pr M. Saadi
 Portée des variables:
◦ chaque fonction a son propre espace de
travail

 donc:
◦ elles n’ont pas accès aux mêmes variables
(sauf si global).

 mais:
◦ elles ont accès aux variables de leurs
ancêtres.

Pr M. Saadi
Pr M. Saadi
Pr M. Saadi
Pr M. Saadi

You might also like