MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace...

21
MATLAB Initiation à Matlab

Transcript of MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace...

Page 1: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

MATLAB

Initiation à Matlab

Page 2: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Contenu du répertoire de travail

Zone de saisie des commandes Espace de travail

Historique des commandes

Page 3: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Aide en ligne

Fonctions élémentaires de MATLAB

Toolbox : des fonctions prédéfinies organisées par type.

Page 4: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Calculs élémentairesDans la fenêtre de commandes on peut saisir n’importe quelle opération de calcul en utilisant les opérateurs classiques : +, -, *, /, ^.Les parenthèses s’utilisent de manière classique comme sur une calculette.Exemple :

L’opération donne un résultat de 2.5 qui est affecté à une variable « ans ». Dans l’espace de travail on verra apparaitre la variable « ans » qu’on peut visualiser en la sélectionnant et en la double cliquant.

Si je rentre une nouvelle commande pour un nouveau calcul, la variable « ans » prendra comme valeur le nouveau résultat.

Page 5: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Les variablesLe calcul effectué précédemment a été stocké dans une variable de nom « ans ». On peut créer autant de variables qu’on veut sans les définir préalablement comme c’est le cas des langages classiques. Leur type (entier, réel,…) s’affectera automatiquement en fonction du calcul effectué. Pour affecter la valeur 1.2 à la variable a, il suffit d’écrire a=1.2.

>> b = 5*a^2+ab =8.4000

On peut utiliser cette variable pour faire un nouveau calcul :

>> c = a^2 + b^3/2c =297.7920

On peut ensuite utiliser ces deux variables dans un autre calcul dont le résultat sera affecté à la variable c:

Attention MATLAB fait la différence entre les majuscules et les minuscules.

>> a = 1.2a = 1.2000

Page 6: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Les variables

On peut supprimer la variable « a » par exemple en écrivant :

>> clear a Si aucune variable n’est spécifiée toutes les variables sont supprimées

On peut aussi la sélectionner dans l’espace de travail et la supprimer avec un clic droit puis « Delete »

Il existe des variables prédéfinies tel que pi ( ) et d’autres encore.

Page 7: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Les fonctions prédéfiniesIl existe un nombre important de fonctions prédéfinies. Si vous allez dans « Help/Function browser » vous allez voir apparaitre une liste de fonctions organisées par type. Si vous sélectionnez une fonction particulièrement, vous allez avoir une aide sur l’utilisation de cette fonction .Dans cet exemple nous avons choisi la fonction sinus dont l’argument doit être rentré en radian.

>> sin(pi)

ans =

1.2246e-016

Page 8: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Matrices ou tableauxUne matrice est saisie entre crochets [ et ] pour désigner le début et la fin de la matrice. Pour définir la variable A contenant la matrice:

812

738

2115

On écrira :

>> A=[5 ,11, 2;8, 3, 7;2, 1, 8]

A =

5 11 2 8 3 7 2 1 8

La virgule sert de séparateur de colonnes et le point virgule sert de séparateur de lignes. On peut également utiliser le blanc au lieu de la virgule. Essayez pour voir.

Page 9: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Accès à un élément d’un tableau

Pour savoir la valeur d’une cellule dans un tableau ou d’une matrice, il suffit d’indiquer le nom de la matrice et des indices de la valeurs recherchée. Par exemple si on veux savoir la valeur qu’occupe la ligne 2 et la colonne 3 on écrira

>> A(2,3)

ans =

7On peut modifier un seul élément du tableau. Par exemple je veux que A(2,3) ne soit plus égale à 7 mais à 25 :

>> A(2,3)=25

A =

5 11 2 8 3 25 2 1 8

Page 10: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Extraction de sous-tableauxtableau(début:fin, début:fin) tableau(début:fin, début:fin)

La syntaxe générale pour extraire un bloc du tableau A est la suivante: A(ligne_début:ligne_fin,colonne_début:clonne_fin)Les deux points « : » servent à indiquer la plage de lignes ou de colonnes. Exemple : si on veut extraire les deux colonnes des deux premières lignes on écrit :

A(1:2,1:2)

ans =

5 11 8 3

Si on utilise le caractère « : » sans rentrer de valeurs, MATLAB affiche tous les indices possibles

A(1:2,:)

ans =

5 11 2 8 3 25

Ici, MATLAB affiche toutes les colonnes pour les lignes 1 à 2.

Page 11: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Composer une matrice à partir de plusieurs blocs

B=[A A]

B =

5 11 2 5 11 2 8 3 25 8 3 25 2 1 8 2 1 8

B=[A;A]

B =

5 11 2 8 3 25 2 1 8 5 11 2 8 3 25 2 1 8

OU

Exercice : ajoutez la ligne [1 2 3] à la matrice A

Page 12: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Opérations sur les tableaux

Les deux opérations soustraction et additions se font naturellement, mais il faut que ce soient deux matrices de même taille.

A+A

ans =

10 22 4 16 6 50 4 2 16

Les opérateurs .*, ./ et .^ servent pour effectuer respectivement, une multiplication, division ou puissance terme à terme. Exemple :

A.^2ans = 25 121 4 64 9 625 4 1 64

Ici les termes de la matrice A ont été élevé au carré. Si on oublie le point avant l’opérateur c’est la matrice qui élevée au carré et pas les valeurs qui constituent la matrice. Le résultat est donc le produit de matrice A par elle-même.

>> A^2ans = 117 90 301 114 122 291 34 33 93

Page 13: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Génération de matrices particulières

>> B=zeros(2)

B =

0 0 0 0

Cette fonction génère une matrice de taille 2*2 d’éléments nulles. Si on veux générer une matrice ayant un nombre de ligne différent du nombre de colonnes, il suffit de le spécifier : essayez B=zeros(2,4) par exemple

B=ones(2)

B =

1 1 1 1

La fonction « ones » crée une matrice dont les éléments sont égaux à 1.

Page 14: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Trouver les indices d’une valeurLa fonction « find » permet de localiser une valeur ou un ensemble de valeurs dans un tableau

>> [r,c]=find(A==2)

r = 3 1

c = 1 3

Ici, nous avons demandé à MATLAB de trouver la position de la valeur 2 dans la matrice A.La valeur 2 se trouve à la ligne 3 colonne 1 et à la ligne 1, colonne 3.Remarquez, l’égalité est désignée par l’opérateur == . L’opérateur = est utilisé pour affecter une valeur à une variable.

A =

5 11 2 8 3 25 2 1 8

>> A(r,c)=5A = 5 11 5 8 3 25 5 1 5

Avec cette commande, on remplace les deux valeurs localisées par 5

Page 15: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Taille des tableaux

La fonction « size » permet de savoir la taille d’une matrice (nombre de lignes et colonnes)

>> size(A)

ans =

3 3

>> length(A)

ans =

3

La fonction « length » permet de savoir la taille d’un vecteur, ou comme ici la plus grande dimension d’une matrice.

Page 16: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Graphique 2DL’instruction « plot » permet de tracer un graphique simple représentant deux vecteurs.

Plot(vecteur en abscisses, vecteurs en ordonnées)

Tappez les commandes suivantes: La première commande crée un vecteur x de 0 à 2 avec un incrément de /4;La seconde commande crée un vecteur y qui est le sinus de x;La troisième commande trace y en fonction de x.

>> x=0:pi/4:2*pi;>> y=sin(x);>> plot(x,y)

Page 17: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Graphique 2DOn peut ajouter des informations sur notre graphique pour le rendre plus clair. Par exemple, on peut ajouter des titres pour les deux axes. Il existe deux manières de le faire :

Le plus simple, c’est d’utiliser le menu de la fenêtre graphique. Il suffit de choisir l’anglet « Insert » et sélectionner ensuite « X Label » pour l’axe des abscisses, « Y Label » pour l’axe des ordonnées ou « Title » pour le titre de la figure.

La seconde manière de réaliser cette opération est d’ajouter une commande du type :>> xlabel('abscisse‘)Cette commande aura pour effet d’ajouter « abscisse » comme titre des abscisse.

Page 18: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Graphique 2DIl est également possible de tracer sur la même figure plusieurs graphiques.

>> plot(x,y)>> x=0:pi/4:2*pi;>> y=sin(x);>> z=cos(x);>> plot(x,y)>> hold on>> plot(x,z)

La commande « hold on » permet de maintenir la fenêtre « Figure 1 » ouverte pour y ajouter un graphique.Si on veut créer un nouveau graphique sur la même figure en ayant effacé l’ancien, il suffit d’écrire « hold off »Si on veux garder l’ancienne figure et tracer un nouveau graphique sur une autre fenêtre, il suffit d’écrire : figure(2) qui ouvre seconde fenêtre dans ce cas.

Page 19: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Graphique 2DPour différencier les deux courbes tracées dans la figure précédente, il suffit de les caractériser par des couleurs différentes ou des symboles différents. Ajouter dans les argument de la fonction plot ‘b’ pour bleu ou ‘r’ pour rouge par exemple.

>> hold off>> plot(x,y,'b')>> hold on>> plot(x,z,'r')

Pour en savoir un peu plus sur la fonction plot, il suffit d’aller dans le menu « Help », « Product Help » et de taper plot.

Page 20: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Graphique 2D

>> h = legend('sin(x)','cos(x)',2);

On peut ajouter une légende, il suffit pour cela d’écrire :

Ici, la légende est placée en haut à gauche. Retapez la commande en remplaçant 2 par 1, 3 ou 4 pour voir les différents emplacement de la légende.

Ici, sin(x) pour la première courbe et cos(x) pour la seconde.

Page 21: MATLAB Initiation à Matlab. Contenu du répertoire de travail Zone de saisie des commandes Espace de travail Historique des commandes.

Lire un fichier Excel

x=xlsread('98_1mn.xlsx');

Cette commande permet de lire le fichier Excel « 98_1mn.xlsx » et de l’affecter à la variable x. Ouvrez le fichier sous son format d’origine et ensuite sur Matlab et comparez les deux fichiers.