UE ATSA - Guide d’introduction à Matlab⚓
Introduction⚓
La société Mathworks présente MATLAB comme « une plateforme de calcul numérique et de programmation utilisée par des millions d’ingénieurs et de scientifiques pour analyser des données, développer des algorithmes et créer des modèles. MATLAB associe un environnement de bureau, conçu pour l’analyse par itération et les processus de conception avec un langage de programmation permettant d’exprimer directement les mathématiques sous forme de tableaux et de matrices. »
Ce guide a pour but de vous familiariser avec les commandes élémentaires de Matlab pour pouvoir traiter sereinement la SAR "traitements audio". Ce document présente d’abord des éléments de prise en main de l’outil et contient ensuite quelques exercices.
Démarrage⚓
Plaçez-vous dans le répertoire dans lequel vous souhaitez exécuter vos programmes (créez en un si ce n’est pas déjà fait). Pour lancer Matlab, ouvrez un terminal (++ctrl+alt+t) et entrez les commandes suivantes :
1 2 |
|
Une fois que la fenêtre s’affiche, allez dans le répertoire de travail. Vous pouvez sauvegarder vos commandes Matlab dans un fichier script avec une extension « .m ». Pour lancer votre script, il suffit de cliquer sur l’onglet « Run » dans le bandeau supérieur (cf. Fig. 1). Vous pouvez charger n’importe quel script sauvegardé en cliquant sur l’onglet « Open » situé en haut à gauche.
Commandes générales⚓
Gestion de fichiers⚓
Commande | Description |
---|---|
pwd |
affiche le nom du répertoire courant pour Matlab |
cd rep |
change le répertoire courant pour Matlab qui devient rep |
dir |
fournit le catalogue d’un répertoire |
delete |
efface des fichiers ou des objets graphiques |
Constantes prédéfinies⚓
Commande | Description |
---|---|
pi |
3,1415 ... |
eps |
2.2204e-016 |
Inf |
nombre infini |
NaN |
n’est pas un nombre ; exprime parfois une indétermination |
Historique⚓
Matlab conserve l’historique des commandes. Il est donc possible de récupérer des instructions déjà saisies (et ensuite de les modifier dans le but de les réutiliser) : →, ←, ↑, ↓
Variables d’environnement⚓
Matlab garde en mémoire les variables qui ont été créées (cf. l’onglet workspace). Pour les afficher et les effacer par la ligne de commande :
Commande | Description |
---|---|
who |
donne la liste des variables présentes dans l’espace de travail |
whos |
donne la liste des variables présentes dans l’espace de travail ainsi que leurs propriétés |
what |
donne la liste des fichiers .m et .mat présents dans le répertoire courant |
clear all |
efface toutes les variables crées dans l’espace de travail |
Déclaration d’un vecteur⚓
Vecteur de taille connue n
⚓
Vecteur ligne :
Code | Description |
---|---|
x=[1 2 3 4 5 6]; |
|
x=[1:0.25:6]; |
Déclaration de x contenant des éléments allant de 1 à 6 par pas 0,25 |
x=zeros(1,n); |
Déclaration de x et initialisation à \(0_{1 \times n}\) |
x=ones(1,n); |
Déclaration de x et initialisation à \(1_{1 \times n}\) |
Vecteur colonne :
Code | Description |
---|---|
x=[1;2;3;4;5;6]; |
|
x=zeros(n,1); |
Déclaration de x et initialisation à \(0_{n \times 1}\) |
x=ones(n,1); |
Déclaration de x et initialisation à \(1_{n \times 1}\) |
Vecteur de taille inconnue⚓
x=[] ;
: Initialisation de x comme vecteur vide
Puis au cours d’un processus récursif, on vient insérer de nouvelles valeurs : si on souhaite insérer le vecteur a de longueur l dans le vecteur x de longueur alors égale à n (ici a et x sont des vecteurs ligne. Mais ce qui suit se généralise aux vecteurs colonne).
Code | Description |
---|---|
x=[x a]; |
insertion à la fin |
x=[a x]; |
insertion au début |
x=[x(1,1:k-1) a x(1,k:n)]; |
insertion du vecteur a à partir de la k-ième composante de x |
`` |
A l’issue de cette insertion, le vecteur x est de longueur l
+ n
N.B :
- la longueur d’un vecteur x est donnée par :
length(x)
x(1,k)
désigne la k-ième composante dex
Warning
- Sous Matlab, la numérotation des indices commence à 1
- Ne jamais utiliser
i
etj
comme indices car ce sont des lettres réservées : \(i = j = e^{i\frac{\pi}{2}}\) ou alors utiliser1i
ou1j
pour désigner le nombre complexe \(e^{i\frac{\pi}{2}}\) .
Opérations sur les matrices⚓
Déclaration, éléments⚓
Si on connaît la taille de la matrice A (par exemple \(n × m\)), on peut initialiser la matrice à :
Code | Description |
---|---|
A=[1 2 3;4 5 6]; |
\(A = \bigl( \begin{smallmatrix} 1 & 2 & 3 \\ 4 & 5 & 6\end{smallmatrix}\bigr)\) |
A=zeros(n,m); |
matrice nulle |
A=ones(n,m); |
matrice “1” \(a_{ij} = 1\) |
A=eye(n); |
matrice identité si \(n = m\) |
La méthode décrite pour un vecteur de taille inconnue reste valable, modulo quelques précautions sur l’insertion des matrices
\(A(k,l)\) désigne l’élément situé à l’intersection de la ligne \(k\) et de la colonne \(l\).
Opérations sur les matrices (et les vecteurs)⚓
Si C
est complexe, real(C)
(resp. imag(C)
) fournit la matrice des parties réelles (resp. imaginaires) de ses éléments.
Quelques fonctions élémentaires sur les vecteurs et les matrices⚓
Code | Description |
---|---|
sqrt |
racine carrée |
sin |
sinus |
asin |
arc sinus |
cos |
cosinus |
acos |
arc cosinus |
tan |
tangente |
atan |
arc tangente |
round |
arrondi à l’entier le plus proche |
ceil |
arrondi à l’entier supérieur |
floor |
arrondi à l’entier inférieur |
abs |
valeur absolue |
exp |
exponentiel |
log |
logarithme népérien |
log10 |
logarithme base 10 |
conj |
conjugué |
max(x) |
valeur maximum contenu dans le vecteur x |
min(x) |
valeur minimum contenu dans le vecteur x |
sort(x) |
tri par ordre croissant |
sum(x) |
somme des éléments de x |
prod(x) |
produit des éléments de x |
diff(x) |
vecteur des différences entre deux éléments consécutifs de x |
mean(x) |
moyenne des éléments de x |
median(x) |
médiane |
std(x) |
écart type |
conv(x,y) |
convolution entre x et y |
xcorr(x,y) |
intercorrélation entre x et y |
rank(A) |
rang de la matrice A |
det(A) |
déterminant de la matrice A |
inv(A) |
inverse de la matrice A |
[U,D]=eig(A) |
vecteurs propres et valeurs propres de A |
Boucles⚓
Boucle for
⚓
1 2 3 |
|
Boucle while
⚓
1 2 3 |
|
Figures⚓
Soient \(x_1\) , \(y_1\) , \(x_2\) et \(y_2\) 4 vecteurs tels que \(x_i\) et \(y_i\) soient de même longueur. On veut tracer sur la même figure \(y_1\) en fonction de \(x_1\) et \(y_2\) en fonction de \(x_2\) .
Code | Description |
---|---|
figure(n); |
n est le numéro de la figure n = 1, 2, .. |
clf; |
efface le contenu de la figure |
plot(x1,y1,’bd-.’,x2,y2,’ks-’); |
trace y 1 = f (x1 ) en pointillés (-.), avec des diamants (d) et en bleu (b). Ordre couleur-symbole-style de trait. |
grid; |
Grille |
xlabel(’x’); |
Nom pour l’axe des abscisses |
ylabel(’y=f(x)’); |
Nom pour l’axe des ordonnées |
legend(’courbe 1’,’courbe 2’); |
légende |
axis([x min x max y min y max ]); |
dimension des axes X et Y |
Si l’on veut rajouter une troisième courbe sur la même figure, on peut utiliser la commande hold on et tracer ensuite la courbe à l’aide de la commande plot. Il est également possible de zoomer ou de placer des curseurs sur les figures à l’aide de l’interface graphique.
A la place de plot
, on peut aussi utiliser stem
ou bar
(pour les diagrammes par exemple). Pour en savoir plus : help plot
.
Fonctions⚓
Soit FonctionAlpha
le nom de la fonction que l’on souhaite créer. Dans le répertoire dans lequel le programme principal est situé (le cas échéant il faut préciser le chemin pour atteindre la fonction), écrire un fichier appelé FonctionAlpha.m
(les noms du fichier et de la fonction doivent être les mêmes) du type suivant :
1 2 |
|
Les \(x_i\) sont les valeurs d’entrée et \(y_i\) celles de sortie.
Pour en savoir davantage⚓
Vous disposez de l’aide en ligne : il suffit de taper dans la fenêtre de commande Matlab help nom_de_la_fonction
dont vous souhaitez des détails. Attention, dans l’aide en ligne, le nom de la fonction est en majuscules, mais son utilisation requiert des minuscules.
Si vous voulez savoir s’il existe une fonction qui réalise ce que vous souhaitez, utilisez la commande lookfor mot_cle
. Sinon utilisez l’outil d’aide (cliquez sur le point d’interrogation en haut à droite). Le site Web de Matlab peut s’avérer utile : https://fr.mathworks.com/help/matlab/