I N I T I AT I O N À M AT L A B
Par: Saloua SENHAJI
PLAN
Partie I: Introduction
Avantages
Mode de fonctionnement de Matlab
L’ environnement MATLAB
Démarrage et arrêt de Matlab
Partie II: Aspects élémentaires
Aide,
Variables
Opérations élémentaires
Fonctions prédéfinies
Commentaires
Historique des commandes
Partie III Matrices et tableaux
Partie IV:
Instructions de contrôle
Les opérateur logiques et les relations
Partie V: 2
Les fonctions prédéfinies
Les fichiers: Script et Function
25/12/2023 Intitiation à Maltab
INTRODUCTION
MatLab (Matrix Laboratory):
Outils très puissant de calcul numérique, de programmation et de
visualisation graphique.
Environnement interactif de travail,
Optimisé pour le traitement des matrices.
Matlab est développé et commercialisé par la société
américaine The MathWorks (http://www.mathworks.com/)
Dernière version: R2023b (7.1)
Environnement: Windows, Linux, Unix, Mac OS
Licence: Shareware
25/12/2023 Intitiation à Maltab
INTRODUCTION:
AVANTAGES 1/2
Facilité et simplicité de développement des applications
Exemple: Modifier l’élément i,j d’une matrice I
Matlab: C:
…
I(k,l)=5; for (i=1;i≤n*m;i++)
{
if (i==k && j==l)
I[i,j]=5; 4
}
25/12/2023 Intitiation à Maltab
INTRODUCTION:
AVANTAGES 2/2
Disponibilité de nombreuses boites à outils (Toolboxes).
Ainsi, On peut ajouter des “boîtes à outils” (toolbox) pour une
utilisation spécifique pour le traitement des signaux 1D, 2D et/ou 3D
pour l’analyse statistique, pour l’optimisation …
Facilité d’intégration de ces toolbox dans Matlab
Exemple: Excel Link, Neural Network Toolbox, Communications
Toolbox, …
25/12/2023 Intitiation à Maltab
INTRODUCTION:
FONCTIONNEMENT DE MATLAB
Deux modes:
1. Mode interactif: MATLAB exécute les instructions au fur
et à mesure qu'elles sont données par l‘utilisateur.
2. Mode exécutif: MATLAB exécute ligne par ligne les
fichiers .m
25/12/2023 Intitiation à Maltab
INTRODUCTION:
ENVIRONNEMENT MATLAB 1/2
Blockset
toolbox Simulink
Commande Graphique
Fichier M
Fenêtres Utilisateur 7
25/12/2023 Intitiation à Maltab
INTRODUCTION:
ENVIRONNEMENT MATLAB 2/2
Fenêtres Utilisateur
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êtres.
Fichiers M: Ce sont des programmes en langage MATLAB
(écrits par l'usager).
25/12/2023 Intitiation à Maltab
DÉMARRAGE ET ARRÊT DE MATLAB
Démarrage:
1. Tapez matlab dans une fenêtre de commandes,
2. Double-cliquez sur l’icône Matlab sur le bureau ou à partir
du menu démarrer.
Arrêt :
Pour quitter la session tapez quit dans l’invite de Matlab.
10
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
AIDE 1/2
Pour obtenir de l'aide sur un sujet, une instruction ou une
fonction, on tape help suivi par le sujet, l'instruction ou
la fonction désirée.
Exemple:
help sqrt %donne l’aide sur la fonction sqrt
La commande help toute seule vous indiquera les
différents thèmes abordés dans la documentation.
11
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
AIDE 2/2
help -> donne de l’aide sur une fonction ou un toolkit (help help)
helpdesk -> documentation en hypertexte
helpwin -> aide en ligne dans une fenêtre séparée
lookfor -> recherche d’un mot clé (lent)
which -> localise les fonctions et les fichiers
what -> liste des fichiers matlab dans le répertoire courant
exist -> check si une fonction ou une variable existe dans le
workspace
who, whos -> liste des variables dans le workspace
12
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
VARIABLES 1/4
Déclaration des variables
>> x=2
x=2
>> y=3;
Lister les variables dans le workspace (espace du travail)
>> who % fournit la liste des fonctions définies dans le workspace (
Your variables are:
xy
>>whos % donne plus d'informations que who
Name Size Bytes Class Attributes
x 1x1 8 double
y 1x1 8 double
13
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
VARIABLES 2/4
Effacer des variables du workspace
>> clear y
>> who
Your variables are:
X
y=56; var1='text 1‘; var2='c''est une variable de type texte‘;
>>clear y var1 % Effacer les variables y et txt1
>>clear all % Effacer toutes les variables du workspace
14
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
VARIABLES 3/4
Variables prédéfinies:
ans, i, j, pi, eps, realmax, realmin, …
Ces variables ne sont pas protégé
Exemple 1: Exemple 2: Exemple 3: Exemple 4: Exemple 5:
>> i >> eps >> realmax >> realmin >> 6
ans = ans = ans = ans = ans =
0 + 1.0000i 2.2204e-16 1.7977e+308 2.2251e-308 6
>> ans
ans =
6
15
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
VARIABLES 4/4
Variables prédéfinies:
ans réponse à une expression sans assignation
eps précision de la virgule flottante
realmax plus grand nombre flottant
realmin plus petit nombre flottant positif
pi π
i, j [√(-1)]
inf ∞
NaN Not a Number
flops nombre d'opérations flottantes par seconde
nargin nombre d'arguments d'entrée d'une fonction
16
nargout nombre d'arguments de sortie d'une fonction
computer type du calculateur
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
OPÉRATIONS ÉLÉMENTAIRES
On définit:
+ Addition
- Soustraction
* Multiplication
/ Division à droite
\ Division à gauche
^ Puissance
Exemples:
10/2 10\2
ans = ans = 17
5 0.2000
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
FONCTIONS PRÉDÉFINIES
Matlab à des fonctions prédéfinies, ainsi on trouve des
fonctions qui sont courantes et d’autres moins courantes.
Exemple de fonctions:
cos, tan, asin, acos, atan , sqrt, log, log10, exp, …
Pour appliquer une fonction à une valeur, il faut mettre
cette dernière entre parenthèses.
Exemple :
>> sin(pi/2)
ans = 1
18
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
COMMENTAIRES
>> s=2+3 % je fais une somme
s=
5
Aide des fonctions:
function [varout1, varout2] = MyFunction(varin1, varin2)
%Commentaire de l'aide
(votre code)
>> help MyFunction
Commentaire de l'aide
19
25/12/2023 Intitiation à Maltab
ASPECTS ÉLÉMENTAIRES:
HISTORIQUE DES COMMANDES
Retrouver et éditer les commandes tapées grâce aux
touches de direction.
1. Appuyez sur ↑ pour remonter dans les commandes
précédentes, ↓ pour redescendre
2. Retrouver toutes les commandes commençant par un
groupe de lettres.
Exemple: pour retrouver toutes les commandes tapées
qui commencent par «fig», tapez fig, puis autant de
fois sur ↑.
21
25/12/2023 Intitiation à Maltab
MATRICES ET TABLEAUX
Introduction
Définition d'un tableau
Accès à un élément d'un tableau
Extraction de sous-tableaux
Construction de tableaux par blocs
Opérations sur les tableaux
Longueurs de tableau
Génération rapide de tableaux
22
25/12/2023 Intitiation à Maltab
INTRODUCTION
Le concept de tableau est important, car il est à la base
du graphique : typiquement pour une courbe de points,
on définira un tableau de abscisses et un tableau de
ordonnées.
Matrice: tableaux rectangulaires à deux indices.
23
25/12/2023 Intitiation à Maltab
DÉCLARATION D'UN TABLEAU
Matrice M contenant:
>>M = [1 2 3;
2 4 5;
6 5 5]
M= 1 2 3
2 4 5
6 4 5
Ou bien:
>>M = [1,2,3;11,12,13;21,22,23] % ou M = [1 2 3;11 12 13;21 22 23]
Vecteurs:
>> V = [1 2 3] % ou V=[1,2,3]
24
V=
25/12/2023 1 2 3 Intitiation à Maltab
ACCÈS À UN ÉLÉMENT D'UN TABLEAU
Accès
>> M(2,1)
ans =
2
Modifier:
>> M(2,1)=8
M=
1 2 3
8 4 5
6 4 5
Cas exceptionnel
>> P(3,3)=3
P=
25
0 0 0
0 0 0
25/12/2023 Intitiation à Maltab
EXTRACTION DE SOUS-TABLEAUX
Il est souvent utile d'extraire des blocs d'un tableau existant. Pour
cela on utilise le caractère « : ».
Il faut spécifier pour chaque indice la valeur de début et la valeur de fin.
Syntaxe: pour un tableau à deux indices
tableau(début:fin, début:fin)
Exemple:
>> M(1:2,2:3)
% affiche les éléments de la ligne 1 à 2 et la colonne 2 à 3
Si on utilise le caractère « : » seul, ça veut dire prendre tous les indices
possibles.
Exemple:
>> M(1:2,:)
% affiche les éléments de la ligne 1 à 2 et tous les colonnes
>> M(2,:) 26
% affiche la deuxième ligne
25/12/2023 Intitiation à Maltab
CONSTRUCTION DE TABLEAUX PAR
BLOCS
A partir des matrices et vecteurs on peut définir la
matrice:
On considère les matrices et vecteurs suivants:
>>M = [1,2,3;11,12,13;21,22,23]
>> V = [1 2 3]
>> U= [11;12;13]
La commande:
>> N=[M, U; V, 0]
N=
1 2 3 11
11 12 13 12
21 22 23 13
1 2 3 0
C’est quoi le résultat des commandes suivantes:
27
>> M=[M; V]
>> M=[M; U']
25/12/2023 Intitiation à Maltab
GRAPHIQUES SIMPLES
MATLAB en plus de ses grandes possibilités de calcul
numériques produit des graphiques en 2 ou 3
dimensions.
On ne s’intéressera ici qu’au graphique 2D simple.
La fonction plot(x,y) permet de tracer une courbe liant
un ensemble de valeurs (vecteur) y en fonction d’un une
autre vecteur x (bien entendu de même dimension).
Dans l’exemple suivant on se propose de tracer la
fonction suivante :
y=cos(2x) +0.5 sin(0.5x).
La variable x est un vecteur dont les valeurs vont de –π à +π avec un pas de
π/100. 28
25/12/2023 Intitiation à Maltab
Que remarquez-vous ? Quelle est la fonction réalisée par chaque instruction ?
30
25/12/2023 Intitiation à Maltab
Pour plus de clarté, il faut nommer les axes, mettre les
unités, proposer une légende… surtout quand il y a
plusieurs courbes sur la même figure. Ceci est
évidemment un peu long à écrire à l'invite MATLAB. Un
SCRIPT (un fichier .m) est tout indiqué, comme le
montre cet exemple (à taper dans un fichier .m) :
31
25/12/2023 Intitiation à Maltab
32
25/12/2023 Intitiation à Maltab
33
25/12/2023 Intitiation à Maltab
Voici un autre exemple simple:
>>t=0:pi/10:2*pi;
>>y=sin(t);
>>plot(t,y)
>>title(’Mon premier graphique sous Matlab’)
>>xlabel(’t en secondes’)
>>ylabel(’V en volts’)
34
25/12/2023 Intitiation à Maltab
35
25/12/2023 Intitiation à Maltab
Soit les signaux suivants:
X0=A0sin(2πf0t)
EXEMPLE
X1=A1sin(2πf1t)
X2=A2sin(2πf2t)
Avec
Ecrire le code Matlab qui affiche les 3 signaux ainsi qui affiche un
quatrième signal qui donne la combinaison de ces trois signaux.
36
25/12/2023 Intitiation à Maltab
OPÉRATIONS SUR LES TABLEAUX
Addition et soustraction
Les deux opérateurs sont les mêmes que pour les scalaires.
Dans le cas où les deux tableaux concernés ont la même taille, Le
tableau résultant est obtenu en ajoutant ou soustrayant les termes de
chaque tableau.
Multiplication, division et puissance terme à terme
Ces opérateurs sont notés « .* », « ./ » et « .^ » (attention à ne pas
oublier le point).
Ils sont prévus pour effectuer des opérations termes à terme sur deux
tableau de même taille.
38
25/12/2023 Intitiation à Maltab
OPÉRATIONS SUR LES TABLEAUX
Multiplication, division et puissance au sens matriciel
Ces opérations matricielles sont notées simplement sans point: « * »,
« / », « ^ » et ne doivent pas être confondues avec les opérations
terme à terme.
Dans l’écriture A*B le nombre de colonnes de A doit être égal au
nombre de lignes de B pour que la multiplication fonctionne.
La division A/B représente A multiplié (au sens des matrices) à la
matrice inverse de B.
Il existe aussi une division à gauche qui se note « \ ».
Ainsi A\B signifie l'inverse de A multiplié par B.
Exemple: Calculer à la main et après sur Matlab
>> [1 0; 0 1] * [1 2; 3 4]
>> [1 0; 0 1] .* [1 2; 3 4] 39
25/12/2023 Intitiation à Maltab
OPÉRATIONS SUR LES TABLEAUX
Transposition
L'opérateur transposition, présenté par « ‘ » et utilisé pour
transformer des vecteurs lignes en vecteurs colonnes et
inversement.
Longueurs de tableau
La fonction « size » appliquée à une matrice renvoie un
vecteur de deux entiers : le premier est le nombre de lignes, le
second le nombre de colonnes.
La commande fonctionne aussi sur les vecteurs et renvoie 1
pour le nombre de lignes (resp. colonnes) d'un vecteur ligne
(resp. colonne).
Pour les vecteurs, la commande length est plus pratique et
renvoie le nombre de composantes du vecteur, qu'il soit ligne 40
ou colonne.
25/12/2023 Intitiation à Maltab
GÉNÉRATION RAPIDE DE TABLEAUX
Matrices classiques
zeros: On peut définir des matrices de taille donnée ne contenant que des 0
avec la fonction « zeros »
>> zeros(3,3)
ones: On peut définir des matrices de taille donnée ne contenant que des 1
avec la fonction « ones »
>> ones(2,2)
identité: La matrice identité est obtenue avec eye (1 à la diagonale). On
spécifie seulement la dimension de la matrice (qui est carrée...)
>> eye(3)
Listes de valeurs: Il s'agit de générer dans un vecteur une liste de valeurs
équidistantes entre deux valeurs extrêmes.
variable = valeur_début:pas:valeur_fin
>> x = 0:0.1:1 41
Créer 101 valeurs équi-réparties sur l'intervalle [0,2pi]
25/12/2023 Intitiation à Maltab
INSTRUCTIONS DE CONTRÔLE
Comme dans la plupart des langages il existe des
instructions de contrôle de la forme for, while ou if.
FOR:
Syntaxe:
for compteur = début : pas : fin
expression;
end
Exercice:
Ecrivezun code Matlab qui permet d’incrémenter les valeurs
d’une matrice utilisant la boucle FOR
42
25/12/2023 Intitiation à Maltab
INSTRUCTIONS DE CONTRÔLE
WHILE:
La boucle est répétée tant que la relation reste vraie.
Syntaxe:
while relation
expression;
end
Exercice:
Calculer le factoriel d’un chiffre utilisant la boucle WHILE
43
25/12/2023 Intitiation à Maltab
INSTRUCTIONS DE CONTRÔLE
IF:
Syntaxe Syntaxe 2:
1:
if relation if relation
expression; expression1;
end else
Syntaxe 3: expression2;
end
if relation1
expression1;
elseif relation2
expression2;
else
expression3;
end
44
25/12/2023 Intitiation à Maltab
RELATIONS
Les opérateurs de relation sont:
< inférieur à >= supérieur ou égal à
> supérieur à == égal à
<= inférieur ou égal à ~= différent de
Les évaluations de relations peuvent elles-mêmes être manipulées
par des opérateurs logiques tels que:
& (et),
| (ou)
~ (non)
Exercice:
Ecrivez un code Matlab qui permet d’attribuer une mention à une note
d’un étudiant 45
25/12/2023 Intitiation à Maltab