Académique Documents
Professionnel Documents
Culture Documents
MATLAB
Introduction
UA: 2023-2024
Pr SAADI Mostafa
Apprentissage de la programmation avec Matlab
Connaitre et savoir programmer les méthodes numériques classiques
utilisées dans le métier d’ingénieur
A la fin du cours l’étudiant(e):
Langage Matlab
Algorithmique
◦ pourra concevoir un programme séquentiel simple,
◦ pourra organiser ses programmes (scripts/fonctions/répertoires),
◦ pourra écrire des programmes lisibles par des gens extérieurs,
◦ pourra tester et valider ses programmes de façon autonome.
MATLAB
Matlab= « Matrix laboratory »
Le nom Matlab désigne
◦ un langage utilisé pour la programmation scientifique
◦ un environnement qui permet l’édition, la gestion et
le débogage des programmes écrits en Matlab
MATLAB
Solid
Works
Blocksets
SimMechanics SimPowerSystems
Neural
Toolboxes
Filter Design Network
MATLAB
Image Wavelet
processing
Fenêtre de Fenêtres
commande graphiques Fichiers
M
MATLAB
MATLAB fonctionne dans plusieurs environnements tels que X-Windows, Windows,
Macintosh, Linux …
Il existe deux modes de fonctionnement:
mode interactif: MATLAB exécute les instructions au fur et à mesure qu'elles sont données par
l'usager.
mode exécutif: MATLAB exécute ligne par ligne un "fichier M" (programme en langage
MATLAB).
Fenêtre Commande: Dans cette fenêtre, l'usager donne les instructions et MATLAB retourne
les résultats.
Fenêtres Graphique: MATLAB trace les graphiques dans ces fenêtre.
Fichiers M: Ce sont des programmes en langage MATLAB (écrits par l'usager).
Toolboxes: Ce sont des collections de fichiers M développés pour des domaines d'application
spécifiques (Signal Processing Toolbox, Image Processing ToolBox, System Identification
Toolbox, Control System Toolbox, Robust Control Toolbox, Optimization Toolbox, Neural
Network Toolbox, Chemometrics Toolbox, Fuzzy Logic Toolbox, etc.)
Simulink: C'est l'extension graphique de MATLAB permettant de travailler avec des
diagrammes en blocs.
Blocksets: Ce sont des collections de blocs Simulink développés pour des domaines
d'application spécifiques (DSP Blockset, Power System Blockset, etc.).
Pr M. Saadi
Le logiciel Matlab se divise en deux parties :
Le noyau
Il comprend :
l'environnement de travail offrant plusieurs facilités pour la
manipulation des données.
son interpréteur permet de tester rapidement ses propres programmes
Matlab.
le système graphique Matlab (interfaces homme-machine, graphiques,
images, animations).
le langage de programmation Matlab.
une librairie de fonctions mathématiques Matlab.
un système d'interfaçage facilitant l'exécution de programmes C ou
Fortran ou sous Matlab.
Des Toolboxes (boîtes à outils)
Ils regroupent un ensemble de fonctions spécifiques à un thème.
MATLAB
Logiciel de calcul scientifique
Langage interprété (pas de compilation)
Développé par la société Mathworks
Avantages
Facilité d’utilisation, prise en main rapide
Existence de toolboxes utiles pour l’ingénieur
Possibilité de l’interfacer avec d’autres langages (C, C++, Fortran)
Permet de faire du calcul parallèle.
Inconvénients
Vitesse de calcul moins rapide qu’en C/C++
Limitation en mémoire
Payant.
Alternatives libres
Scilab
Octave
MATLAB
Vous pouvez démarrer Matlab en double-cliquant sur
l’icône de Matlab ou en invoquant l’application depuis
le menu “Démarrer” de Windows.
Dans
un environnement DOS, MATLAB s'active avec la
commande matlab.
MATLAB
Le Desktop Matlab est composé de quatre fenêtres principales:
3 4
Espace de travail
Navigateur
de fichiers 1
Fenêtre de
commandes
2
Historique des
commandes
Pr M. Saadi
Les commandes en langage Matlab sont entrées directement dans
cette fenêtre. Les commandes sont évaluées immédiatement lorsque
la touche « return » (entrée) est pressée.
Pr M. Saadi
Le « Prompt » vous invite à rentrer les Vous pouvez cliquer sur MATLAB Help
commandes dans le langage Matlab. pour obtenir de l’aide ou sur Demos
Une fois une commande entrée, celle-ci pour visualiser quelques démonstrations
s’exécute et le résultat de l’évaluation est des capacités de Matlab.
affiché.
Le résultat est en fait affecté dans une Si une commande se termine par le point
variable par défaut appellée ans avant son virgule, alors le résultat de l’évaluation n’est
pas affiché à l’écran (mode silencieux).
affichage.
Pr M. Saadi
Dans cette fenêtre on peut visualiser et éventuellement ré-
exécuter les anciennes commandes entrées dans la fenêtre de
commande.
On peut « rappeller » une commande Matlab en double
cliquant sur la ligne correspondante dans l’historique.
Pr M. Saadi
De façon égale, L’utilisation des flèches « haut»
et «bas» dans la fenêtre de commande, permet
d’afficher à nouveau les commandes entrées
précédemment (historique des commandes) et
éventuellement de les ré-exécuter en pressant sur
« Return » (entrée).
Pr M. Saadi
Le répertoire courant est situé
en haut à droite et affiche le
répertoire du travail.
C’est le répertoire dans lequel
vous enregistrerez votre
travail.
Pr M. Saadi
Affiche le contenu du répertoire courant.
Permet d’accéder aux fichiers de script Matlab (*.m) ou aux
fichiers graphiques de Matlab (*.fig).
Pr M. Saadi
L’espacede travail c’est la où les données sont stockées dans
MATLAB.
Les données affichées dans l’espace de travail sont accessible
seulement pendant la session MATLAB courante.
Pr M. Saadi
Active une fenêtre d’aide dont l’index est utile pour trouver
de l’information sur les différentes fonctions de Matlab.
Pr M. Saadi
Pr M. Saadi
Fonction « help »
Pour connaître la signification des mots clés ou fonctions Matlab on peut
entrer « help nom_de_la_fonction » dans la ligne de commande
Pr M. Saadi
Vous pouvez cliquer sur les liens
indiqués en bleu pour accéder au plus
d’aide sur les sujets liés ou accéder à
l’aide (éventuellement plus complète)
dans le Help browser.
Exemple
Pr M. Saadi
Lors d’une opération d’affectation, le
contenu de la variable affectée est affiché
après évaluation. Utilisez la scrollbar pour visualiser les
résultats des commandes précédentes.
Pr M. Saadi
Les variables sont créées lors d’une opération d’affectation et existent
pendant une session Matlab (càd tant que Matlab n’est pas fermé).
Pr M. Saadi
Comme il est très facile de créer de nouvelles variables
dans Matlab, on risque d’encombrer la mémoire avec
une multitude de variables dont on ne se sert plus.
>> who
Your variables are:
A B C D S a ans
Pr M. Saadi
Lacommande whos donne la même liste, ainsi que des
informations sur la nature et la taille de chaque
variable.
>> whos
Name Size Bytes Class
A 3x3 72 double array
B 1x2 16 double array
C 3x1 24 double array
D 2x1 16 double array
S 1x1 8 double array
a 1x1 8 double array
ans 1x1 8 double array
Pr M. Saadi
Chaque élément nécessite 8 octets de mémoire. La taille des
variables que l'on peut traiter avec MATLAB dépend des
caractéristiques physiques de l'ordinateur.
Pr M. Saadi
La variable x peut être détruites par la commande clear x
Toutes les variables sont détruites par la commande clear all
Pr M. Saadi
Commandes pour la gestion d’une session :
Pr M. Saadi
MATLAB est un langage du type "expression language".
Une expression tapée par l'utilisateur est d'abord
interprétée puis évaluée par MATLAB.
En général, une commande MATLAB est de la forme:
variable = expression
ou encore
expression
Une expression est composée d'opérateurs, de caractères
spéciaux, de fonctions et de noms de variables.
Pr M. Saadi
L‘évaluation de l'expression produit une matrice qui est
assignée à la variable pour qu'elle puisse être utilisée
ultérieurement.
Si le nom de variable et le signe = sont omis, MATLAB
crée automatiquement une variable de nom ans.
Les noms des variables et fonctions sont constitués
d'une lettre qui peut être suivie d'un nombre quelconque
de lettres, nombres ou caractères _.
Pr M. Saadi
Certaines valeurs particulières sont prédéfinies dans Matlab:
eps: Epsilon machine
pi : Constante π
realmax: Plus grand nombre flottant
realmin: Plus petit nombre flottant
i ou j : L'unité imaginaire.
Si on a déjà utilisé i et j comme noms pour d'autres
variables, ces constantes sont inaccessibles. On peut alors
utiliser sqrt(-1)
>> result = a + sqrt(-1) + 2*i
result =
3.0000 + 3.0000i (nombre complexe)
Pr M. Saadi
Inf : L'infini. C'est le résultat renvoyé par Matlab quand un calcul
devrait avoir un résultat infini.
>> b = -3/0
Warning: Divide by zero.
b=
-Inf
Pr M. Saadi
Pour définir un scalaire:
>> S = 6
S=
6
>> E = [5]
E=
5
Pr M. Saadi
Les opérations arithmétiques disponibles sur les scalaires:
Pr M. Saadi
Matlab permet d'effectuer les opérations classiques sur les scalaires :
>> a = 3;
>> b = 5;
>> result = (-a)^a*a/b+1
result =
-15.2000
Les fonctions classiques comme sin, cos, log, ... existent aussi.
Pr M. Saadi
La matrice est délimitée par des crochets, on entre les éléments
ligne par ligne, avec un point-virgule pour séparer les lignes de la
matrice et un espace pour séparer les éléments des colonnes
>> A = [1 2 3 ; 4 5 6]
A=
123
456
Pr M. Saadi
Pour créer un vecteur ligne : Pour créer un vecteur colonne :
>> D = [6,7]'
D=
6
7
Pr M. Saadi
On accède aux éléments d'une matrice en spécifiant la ligne et la colonne de
l'élément désiré entre parenthèses et séparés d'une virgule
>> A(2,3)
ans =
6
>> B(2)
ans =
5
>> C(2)
ans =
4
Pr M. Saadi
Les vecteurs colonne (resp. ligne) sont en fait des matrices où la
dimension colonne (resp. ligne) est égale à 1
On peut accéder à leurs éléments en utilisant la notation matricielle :
>> C(2,1)
ans =
4
Même remarque pour les scalaires qui sont en fait des matrices 1*1
ou encore : ou encore :
Pr M. Saadi
Il est possible de modifier un des éléments d'une matrice :
>> A(1,3) = 2
A=
122
456
>> A(3,3) = 1
A=
122
456
001
Pr M. Saadi
Pr M. Saadi