70
IMN359 Chapitre 1 Introduction à Matlab Olivier Godin Université de Sherbrooke 14 septembre 2016 Introduction à Matlab 1 / 70

IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

IMN359Chapitre 1

Introduction à Matlab

Olivier Godin

Université de Sherbrooke

14 septembre 2016

Introduction à Matlab 1 / 70

Page 2: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Plan du chapitre

1 Interface du logiciel

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 2 / 70

Page 3: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel

Interface du logiciel

1 Interface du logicielÉléments de l’interfaceOrganisation du travail avec les répertoiresDocumentation et aideScripts

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 3 / 70

Page 4: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel

Interface du logiciel

Introduction à Matlab 4 / 70

Page 5: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Éléments de l’interface

Éléments de l’interface

1 Interface du logicielÉléments de l’interfaceOrganisation du travail avec les répertoiresDocumentation et aideScripts

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 5 / 70

Page 6: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Éléments de l’interface

Workspace

Sous Matlab, le Workspace, situé à droite de la fenêtre, est l’emplacement indiquant lesvariables déclarées ainsi que leur valeur.

Introduction à Matlab 6 / 70

Page 7: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Éléments de l’interface

Workspace

Il est possible de visualiser, modifier, sauvegarder ou supprimer des variables à partir decet emplacement.

Notons que le workspace permet de visualiser les valeurs des variables courantes à toutmoment lors de l’exécution de code Matlab. Il est donc possible de visualiser les valeursde variables à l’intérieur de boucles ou de fonctions.

Introduction à Matlab 7 / 70

Page 8: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Éléments de l’interface

Command History

L’historique des commandes est une sous-fenêtre permettant de visualiser lescommandes précédemments entrées pour facilement pouvoir les rappeller par la suite.Cette sous-fenêtre est située sous la fenêtre du workspace.

Introduction à Matlab 8 / 70

Page 9: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Éléments de l’interface

Command Window

La fenêtre de commandes quant à elle est le principal emplacement de travail sousMatlab. C’est dans cette fenêtre que vous entrez les diverses commandes.

Introduction à Matlab 9 / 70

Page 10: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Éléments de l’interface

Current Folder

Finalement, la vue du système de fichier, située en haut à droite, permet de voir lerépertoire courant et les fichiers et sous-répertoires qu’il contient.

Introduction à Matlab 10 / 70

Page 11: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Organisation du travail avec les répertoires

Organisation du travail avec les répertoires

1 Interface du logicielÉléments de l’interfaceOrganisation du travail avec les répertoiresDocumentation et aideScripts

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 11 / 70

Page 12: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Organisation du travail avec les répertoires

Organisation du travail avec les répertoires

Matlab peut accéder directement au système de fichier de l’ordinateur afin d’y lire etécrire des données ou aller chercher des fonctions externes définies par l’utilisateur.

Dans cette optique, Matlab possède un répertoire de travail courant à partir duquel leschemins sous-fenêtre relatifs. Pour connaître le répertoire de travail courant, vous pouvezsimplement entrer la commande unix pwd (pour Print Working Directory ) qui affichera letout.

Introduction à Matlab 12 / 70

Page 13: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Organisation du travail avec les répertoires

Organisation du travail avec les répertoires

Sur une autre note, le répertoire de travail peut être modifié en utilisant les commandesunix de système de fichier habituelles (cd, rm, mv, etc.)

IMPORTANT : Éviter à tout prix d’utiliser des espaces dans vos noms de dossier ou defichier. Matlab ne gère pas très bien les espaces.

MATLAB

pwdcd . .pwdcd ’ I n t ro_Mat lab ’

Introduction à Matlab 13 / 70

Page 14: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Documentation et aide

Documentation et aide

1 Interface du logicielÉléments de l’interfaceOrganisation du travail avec les répertoiresDocumentation et aideScripts

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 14 / 70

Page 15: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Documentation et aide

Documentation et aide

La documentation de Matlab est extrêmement complète et facile d’utilisation. On peutaccéder à l’aide sur les fonctionnalités de Matlab via la commande help qui affichera untexte d’aide rapide, ou via la commande doc qui affichera une fenêtre d’aide html pluscomplète.

Pour utiliser les commandes help et doc, il faut simplement entrer la commande en lasuivant du mot clé ou de la fonction de Matlab pour laquelle on souhaite avoir del’information. Il est aussi possible d’entrer help ou doc sans aucun nom de fonction pourouvrir l’aide à sa racine.

MATLAB

helphelp sindocdoc sin

Introduction à Matlab 15 / 70

Page 16: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Scripts

Scripts

1 Interface du logicielÉléments de l’interfaceOrganisation du travail avec les répertoiresDocumentation et aideScripts

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 16 / 70

Page 17: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Scripts

Scripts

Il est possible d’entrer toutes les opérations à effectuer dans la fenêtre de Matlabdirectement. Ceci étant dit, le tout devient relativement complexe à gérer lorsqueplusieurs commandes doivent être entrées les unes à la suite des autres. Une méthodeplus efficace pour bien organiser le travail est d’entrer les commandes à exécuter dans unscript puis demander l’exécution d’un script.

Les scripts Matlab ont habituellement l’extention .m et sont des documents textuelscontenant des commandes Matlab. Pour exécuter un script, il suffit de simplementappeller le nom du fichier sans l’extension. Assurez-vous cependant que le fichier estbien situé dans le répertoire courant.

Introduction à Matlab 17 / 70

Page 18: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Interface du logiciel Scripts

Scripts

Il est aussi possible d’ouvrir un éditeur de texte pour modifier le script. Ceci peut être faitvia la commande edit et en entrant le nom du fichier à éditer, ou en double-cliquantdirectement sur celui-ci dans la vue du sytème de fichiers.

MATLAB

e d i t Exemples / Sc r i p t1 .m

Exemples / Sc r i p t1 % F a i t une e r reu rcd ExemplesSc r i p t1 % Fonct ionne !cd . .

Introduction à Matlab 18 / 70

Page 19: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables

Variables

1 Interface du logiciel

2 VariablesVariable prédéfiniesVariables scalaires (valeur numérique)Tableux, matrices et vecteurssave/clear/load

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 19 / 70

Page 20: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables

Variables

Sous Matlab, les variables sont faiblement typées et n’ont pas besoin d’être explicitementinitialisées. Il est donc possible de simplement ajouter une nouvelle variable (sortie denulle part) en plein milieu d’une séquence de commande et cette dernière sera allouée.

Matlab possède quelques types de base mais ces derniers sont habituellement abstraitspour rester simple et transparents. Les différences principales se situent au niveau desvariables de type numérique et des variables textuelles, la plupart des types de variablesont compatibles à l’exception du passage implicite numérique/texte ou inversement.

Parmi les types supportés, on note les complexes, les entiers, les variables symboliques,les réels, etc.

Introduction à Matlab 20 / 70

Page 21: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables

Variables

Pour créer une variable, on peut simplement assigner une valeur à un nom.

MATLAB

var1 = 3.14

chaineDeTexte = ’ Bonsoir t o u t l e monde . ’

La seule contrainte pour les noms de variable est que ces derniers doivent commencerpar une lettre. Par la suite, n’importe quelle combinaison de lettre ou de _ peuvent êtreutilisées.

Introduction à Matlab 21 / 70

Page 22: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables

Variables

IMPORTANT : Les variables Matlab suivent la casse, la variable var1 ne serait donc pasidentique à la variable Var1.

MATLAB

var1 = 3;Var1 = 2;

var1Var1

Introduction à Matlab 22 / 70

Page 23: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Variable prédéfinies

Variable prédéfinies

1 Interface du logiciel

2 VariablesVariable prédéfiniesVariables scalaires (valeur numérique)Tableux, matrices et vecteurssave/clear/load

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 23 / 70

Page 24: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Variable prédéfinies

Variable prédéfinies

Matlab possède certaines variables ou mots-clés prédéfinis qui peuvent être utilisés àtout moment.

i et j sont utilisés pour désigner des nombres complexespi est une constante (3.1415926...)ans garde la dernière valeur assignée ou retournéeInf et -Inf sont respectivement l’infini et l’infini négatif.NaN = Not a Number

MATLAB

3+4 ipi3+12ansI n fNaN

Introduction à Matlab 24 / 70

Page 25: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Variables scalaires (valeur numérique)

Variables scalaires (valeur numérique)

1 Interface du logiciel

2 VariablesVariable prédéfiniesVariables scalaires (valeur numérique)Tableux, matrices et vecteurssave/clear/load

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 25 / 70

Page 26: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Variables scalaires (valeur numérique)

Variables scalaires (valeur numérique)

On peut assigner explicitement une valeur à une variable.

MATLAB

a = 10

Une variable peut aussi avoir une valeur explicitement définie comme étant le résultatd’une fonction utilisant des valeurs connues.

MATLAB

c = 1.3 ∗ 45 − 2 ∗ a

Introduction à Matlab 26 / 70

Page 27: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Variables scalaires (valeur numérique)

Variables scalaires (valeur numérique)

Pour que Matlab n’affiche pas la valeur de retour à chaque commande, ajoutez un; à lafin de votre ligne de commande.

MATLAB

d = 13 /3 ;

Introduction à Matlab 27 / 70

Page 28: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Tableux, matrices et vecteurs

1 Interface du logiciel

2 VariablesVariable prédéfiniesVariables scalaires (valeur numérique)Tableux, matrices et vecteurssave/clear/load

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 28 / 70

Page 29: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Tableaux, matrices et vecteurs

Sous Matlab, il existe, comme dans plusieurs langages de programmation, la notion detableau ou de matrice. Cette structure est en fait la force de Matlab puisque Matlab(Matrix Laboratory ) est optimisé pour les calculs sur de grosses séries de donnéescontenues dans des tableaux.

Notons que sous Matlab, une matrice ou un vecteur sont tous deux considérés commeétant des tableaux.

Il existe aussi une structure de tableau par cellule (cell) mais cette structure de donnéesest plus avancée et ne sera pas couverte dans notre introduction.

Introduction à Matlab 29 / 70

Page 30: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Vecteur ligne

Un vecteur ligne se définit à l’aide des crochets rectangulaires. Les valeurs du vecteursont listées et séparées par des espaces ou des virgules.

MATLAB

row = [1 2 5.4 −6.6]row = [1 , 2 , 3 , 5 .4 , −6.6] % Regardez l a v a r i a b l e dans l e Workspace !

Introduction à Matlab 30 / 70

Page 31: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Vecteur colonne

Matlab fait une différence entre les vecteurs ligne et vecteurs colonnes. Assurez-vousdonc que ces derniers sont clairement défini.

Pour changer de colonne dans un vecteur ou une matrice sous Matlab, on utilise lecaractère; dans la définition du vecteur ou de la matrice. Par exemple :

MATLAB

column = [ 1 ; 4 ; 10 .2 ; −5]

Introduction à Matlab 31 / 70

Page 32: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Taille d’un vecteur

La taille d’un vecteur peut être obtenue via la fonction size(vecteur). En fait, sizepeut retourner la taille de n’importe quelle variable numérique.

La taille retournée est un vecteur à deux dimensions sous la forme [largeurhauteur].

MATLAB

size ( row )size ( column )size (25)size ( [ 10 2 ] )

Introduction à Matlab 32 / 70

Page 33: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Taille d’un vecteur

Si vous souhaitez uniquement avoir la longueur du vecteur, vous pouvez aussi utiliser lafonction length, vous ne pourrez cependant plus faire la différence entre un vecteurligne ou colonne

MATLAB

length ( row )length ( column )

Introduction à Matlab 33 / 70

Page 34: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Matrices

La création d’une matrice est très similaire à la création d’un vecteur, excepté qu’oncombine ici la notion de ligne et de colonne. Par exemple, pour faire une matrice 2x2, onutiliserait le code suivant :

MATLAB

a = [1 2 ; 3 4 ]

Les éléments 1 et 2 étant sur la première ligne, on les sépare par un espace. Pourindiquer à Matlab qu’on débute une nouvelle ligne, on écrit un; puis ensuite les élémentsde la 2e ligne.

Introduction à Matlab 34 / 70

Page 35: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables Tableux, matrices et vecteurs

Matrices

Il est aussi possible de concaténer des vecteurs ou des matrices ensembles, en utilisantla même synthaxe.

MATLAB

a = [1 2 ] ;b = [3 4 ] ;c = [ 5 ; 6 ] ;

d = [ a ; b ] ;e = [ d c ] ;f = [ [ e e ] ; [ a b a ] ] ;

Introduction à Matlab 35 / 70

Page 36: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables save/clear/load

save/clear/load

1 Interface du logiciel

2 VariablesVariable prédéfiniesVariables scalaires (valeur numérique)Tableux, matrices et vecteurssave/clear/load

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 RéférencesIntroduction à Matlab 36 / 70

Page 37: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables save/clear/load

save/clear/load

Lorsque vous travaillez sur Matlab, il peut être utile de sauvegarder la valeur d’unevariable sur le disque afin de la réutiliser dans une session de travail subséquente, ou devouloir enlever la variable du workspace pour libérer de la mémoire. Le tout s’effectuer viales commandes save, clear et load.

Chaque commande peut être utilisée en lui passant le nom des variables sur la/lesquelleseffectuer l’action. Il est aussi possible d’appliquer l’action à toutes les variables en entrantaucun nom de variable à la suite de l’action.

Introduction à Matlab 37 / 70

Page 38: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Variables save/clear/load

save/clear/load

Finalement, il est possible de spécifier un nom de fichier particulier pour les commandesload et save. Le nom de fichier s’écrit comme premier paramètre dans un tel cas.

MATLAB

s t r = [ ’ Hel lo , I am ’ ’ The King of the World ’ ]save ’ SuperTest ’ s t rclear s t rload ’ SuperTest ’

saveload

clear a bclear

Introduction à Matlab 38 / 70

Page 39: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques

Opérations mathématiques

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 39 / 70

Page 40: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques

Opérations mathématiques

Matlab supporte les opérations arithmétiques standards.

opérations de base (+,-,*,/) ;expontenielle (ˆ) ;parenthèses pour grouper des expressions.

IMPORTANT : Les multiplications ne sont PAS implicites.

MATLAB

7/45(1+ i ) ∗ (2+ i )1/00/0

4^2(3+4∗ j )^2

( (2+3)∗3)^0 .1

3(1+0.7) % FAIL !

Introduction à Matlab 40 / 70

Page 41: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Fonctions fournies avec Matlab

Fonctions fournies avec Matlab

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 41 / 70

Page 42: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Fonctions fournies avec Matlab

Fonctions fournies avec Matlab

Matlab possède une quantité faramineuse de fonctions mathématiques fournies pardéfaut.

MATLAB

sqrt ( 2 )log ( 2 )log10 ( 0 . 2 3 )cos ( 1 . 2 )atan (−0.8)exp(2+4∗ i )round ( 1 . 4 )f loor ( 3 . 3 )c e i l ( 3 . 3 )abs (1+ i )

Regardez la documentation pour voir quelles fonctions sont disponibles. Gardezcependant en tête que certaines fonctions nécessitent des extensions spéciales à Matlab.Nous avons plusieurs extensions à l’UdeS mais certaines pourraient ne pas y être.

Introduction à Matlab 42 / 70

Page 43: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Transposée

Transposée

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 43 / 70

Page 44: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Transposée

Transposée

L’opération de transposition est utile pour transposer une matrice ou un vecteur (vecteurligne devient vecteur colonne et inversement). Matlab peut faire une transposéehermitienne avec l’opérateur ’. Notez que la transposée hermitienne appliquée sur desnombres complexes transpose et conjuge le nombre. Pour éviter le conjugué, utilisél’opérateur .’.

Finalement, vous pouvez aussi utiliser la fonction transpose directement qui prend levecteur ou la matrice en paramètre.

MATLAB

a = [1 2 3 4+ i ]t ranspose ( a )a ’a . ’

Introduction à Matlab 44 / 70

Page 45: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Addition/soustraction de vecteurs et de matrices

Addition/soustraction de vecteurs et de matrices

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 45 / 70

Page 46: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Addition/soustraction de vecteurs et de matrices

Addition/soustraction de vecteurs et de matrices

Il est possible d’additionner ou de soustraire des vecteurs ou des matrices si ces derniersont la même dimension. L’addition se fait élément par élément. Il est aussi possible detrouver la somme ou le produit de tous les éléments d’un vecteur ou d’une matrice via lesfonctions sum et prod.

MATLAB

a = [12 3 32 −11]b = [ 2 ; 11; −30; 3 2 ; ]

c = a + b ’

c = a ’ + b

s = sum( a )p = prod ( a )

Introduction à Matlab 46 / 70

Page 47: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Fonctions element-wise

Fonctions element-wise

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 47 / 70

Page 48: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Fonctions element-wise

Fonctions element-wise

Toutes les fonctions de Matlab ou presque qui fonctionnent sur un scalaire seul peuventaussi fonctionner sur une matrice ou un vecteur.

MATLAB

t = [−1 −2 3 ] ;

f = exp ( t )f = abs ( t )

L’intérêt de ces fonctions est d’éliminer la nécessité d’avoir recours à des boucles.

Introduction à Matlab 48 / 70

Page 49: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Opérateurs à deux modes

Opérateurs à deux modes

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 49 / 70

Page 50: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Opérateurs à deux modes

Opérateurs à deux modes

Certains opérateurs sous Matlab possèdent deux modes de fonctionnement, soit unmode de fonctionnement global et un mode élément par élément. L’opérateur en modeélément par élément doit être précédé d’un point, tandis que l’opérateur en mode globalest utilisé directement.

Les opérateurs ayant 2 modes sont : *, / et ˆ. Les tailles doivent concorder pour lesopérateurs selon qu’ils sont globaux ou élément par élément.

MATLAB

a = [1 2 ] ;b = [3 4 ] ;

a ∗ b ’ % Produ i t s c a l a i r e en mode g loba la .∗ b % Produ i t s c a l a i r e en mode element par element

Introduction à Matlab 50 / 70

Page 51: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Initialisation automatique

Initialisation automatique

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 51 / 70

Page 52: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Initialisation automatique

Initialisation automatique

Il est courant sous Matlab de vouloir initialiser des grosses matrices avec une valeur pardéfaut ou une séquence numérique régulière. Pour ceci, Matlab prévoit certainesfonctions d’initialisation, soient ones, zeros, rand et nan.

Ces fonctions initialisent une matrice ou un vecteur contenant des valeurs analogues àleur nom. Elles prennent 2 paramètre, soit la taille de la matrice ou du vecteur en hauteuret en largeur (dans cet ordre).

MATLAB

o = ones (1 ,10)z = zeros (23 ,1 )r = rand (1 ,45)n = nan (1 ,10)

Introduction à Matlab 52 / 70

Page 53: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Initialisation automatique de séquences

Initialisation automatique de séquences

1 Interface du logiciel

2 Variables

3 Opérations mathématiquesFonctions fournies avec MatlabTransposéeAddition/soustraction de vecteurs et de matricesFonctions element-wiseOpérateurs à deux modesInitialisation automatiqueInitialisation automatique de séquences

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 53 / 70

Page 54: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Initialisation automatique de séquences

Initialisation automatique de séquences

Tel qu’expliqué au point précédent, il est aussi possible d’initialiser des séquences denombres qui suivent un incrément particulier. Par exemple, on peut définir uneséquence sous la forme

valeur initiale : valeur d’incrément : valeur finale

MATLAB

b = 0 : 2 : 10b = [ 0 : 2 : 10]b = [10 : −2 : 0 ]

Il est possible d’omettre l’incrément, dans quel cas il sera à 1 par défaut.

Introduction à Matlab 54 / 70

Page 55: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Opérations mathématiques Initialisation automatique de séquences

Initialisation automatique de séquences

Une formulation alternative à la formulation avec les : est l’utilisation de la fonctionlinspace(début,fin,nbvaleurs).

MATLAB

a = l inspace (0 ,10 ,6 )b = 0 : 2 : 10

Finalement, pour avoir des incréments logarithmiques, on peut aussi utiliser la fonctionlogspace. La formulation avec : ne premet pas les incréments logarithmiques. Lafonction logspace(X1,X2,N) génère N points également espacés sur une échellelogarithmique entre 10X1 et 10X2 .

MATLAB

c = logspace (2 ,4 ,10)

Introduction à Matlab 55 / 70

Page 56: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Indexation des vecteurs et des matrices

Indexation des vecteurs et des matrices

1 Interface du logiciel

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 56 / 70

Page 57: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Indexation des vecteurs et des matrices

Indexation des vecteurs

L’indexation avec Matlab commence à 1 plutôt qu’à 0, il faut donc faire attentionlorsqu’on accède à un élément d’une matrice ou d’un vecteur. Pour accéder à un élémentprécis d’une matrice, on utilise l’opérateur () en y insérant l’index désiré.

MATLAB

a = [13 5 9 10]

a ( 1 )a ( 2 )a ( 3 )a ( 4 )

L’index peut aussi être un vecteur de plusieurs indexes, ce qui retournera plusieursvaleurs correspondants aux indexes contenus dans le vecteur.

MATLAB

a ( [ 1 2 1 3 4 4 4 1 2 ] )a ( 2 : 4 )

Introduction à Matlab 57 / 70

Page 58: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Indexation des vecteurs et des matrices

Indexation des vecteurs

Un index spécial est aussi disponible, soit l’index end qui correspond au dernier index duvecteur.

MATLAB

a ( 2 : end )

Le tout fonctionne aussi identiquement si le vecteur est un vecteur colonne. Les valeursseront dans ce cas-ci retournée en colonnes.

MATLAB

b = [ 1 0 ; 8 ; 5 ; 4 ]

b ( 3 )

b ( 1 : 3 )

Introduction à Matlab 58 / 70

Page 59: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Indexation des vecteurs et des matrices

Indexation des matrices

L’indexation de matrice peut se faire avec un seul indice linéaire ou une série desous-indices. Lorsqu’un indice linéaire est utilisé, la matrice est parcourue de haut en baspuis de gauche à droite. Lorsqu’une série de sous-indices est utilisée, le premier indicecorrespond à la ligne et le second à la colonne.

MATLAB

a = [14 33; 9 8 ]

a ( 1 )a (1 ,1 )

a ( 2 )

a ( 3 )a (2 ,1 )

a ( 4 )

Introduction à Matlab 59 / 70

Page 60: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Indexation des vecteurs et des matrices

Indexation des matrices

Comme plus tôt, il est possible de sélectionner plusieurs éléments d’une matrice enpassant un vecteur.

MATLAB

a ( [ 1 2 ] ) % Ind ices 1 et 2

a ( [ 1 : 3 ] ) % Ind ices de 1 a 3

a ( [ 1 2 ] , 2 ) % Premiere e t deuxieme l i g n e sur l a deuxieme colonne

On peut vouloir aussi sélectionner seulement une ligne ou une colonne de la matrice.Dans ce cas, on utilise un intervale ouvert : qui signifie tous les indices possibles.

MATLAB

c = [12 5; −2 13]d = c ( 1 , : ) % Toutes les va leurs de l a l i g n e 1e = c ( : , 2 ) % Toutes les va leurs de l a colonne 2

c ( 2 , : ) = [3 6 ] % Remplacer les va leurs de l a 2e l i g n e par [3 6 ]

Introduction à Matlab 60 / 70

Page 61: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Affichage de graphes

1 Interface du logiciel

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 61 / 70

Page 62: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Affichage de graphes

L’affichage de graphes est un outil puissant de Matlab, mais relativement simple àutiliser lorsqu’on souhaite avoir un graphe relativement général sans configurationparticulière. Il est possible de simplement générer le graphique d’un vecteur en fonctionde ses index, par exemple :

MATLAB

vec = [1 2 3 0 0 2 ] ;plot ( vec )

On peut faire de même mais en spécifiant les valeurs sur y et les valeurs sur x àutiliser. Par exemple :

MATLAB

x = l inspace (0 ,4∗pi , 1 0 ) ;y = sin ( x ) ;plot ( y ) % sans s p e c i f i e r Xplot ( x , y ) ; % en s p e c i f i a n t X ( regardez l ’ axe X, les va leurs sont d i f f e r e n t e s . )

Introduction à Matlab 62 / 70

Page 63: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Affichage de graphes

Notons que la fonction plot génère un point à chaque paire (x,y) puis relit ces pointsavec une ligne. Pour qu’un graphe soit plus lisse, on peut augmenter le nombre de point.

MATLAB

x = l inspace (0 ,4∗pi , 1000 ) ;y = sin ( x ) ;plot ( x , y )

Dans ce contexte, faites attention : x et y doivent être de la même taille sinon Matlabproduira une erreur.

Introduction à Matlab 63 / 70

Page 64: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Configuration des options d’affichage

Sans entrer trop dans le détail, notons qu’il est possible de configurer l’affichage de votregraphe. Par exemple, il est possible de configurer le trait du graph avec un coderelativement simple où on indique la couleur, le type de point et le type de ligne à afficher.

MATLAB

plot ( x , y , ’ green.− ’ ) % A f f i c h e r les po in t s e t l a l i g n e en v e r t .plot ( x , y , ’ red . ’ ) % A f f i c h e r seulement les po in t s en rouge .

Les options de configuration sont beaucoup plus avancées en réalité, pour les voir, vousn’avez qu’à consulter l’aide : doc line_props.

Introduction à Matlab 64 / 70

Page 65: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Gradation non linéaire

Il est possible d’utiliser semilogx, semilogy ou loglog pour générer un graphe avecdes échelles logarithmiques.

MATLAB

x = −pi : pi / 100 : pi ;y = cos(4∗x ) .∗ sin (10∗x ) .∗exp(−abs ( x ) ) ;plot ( x , y , ’ k− ’ ) ;

semilogx ( x , y , ’ k ’ ) ;semilogy ( y , ’ r .− ’ ) ;loglog ( x , y ) ;

On peut aussi voir un autre exemple, pour convaincre les sceptiques :

MATLAB

x = 0:100;y = exp ( x ) ;semilogy ( x , y , ’ k.− ’ ) ;

Introduction à Matlab 65 / 70

Page 66: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Graphes en 3D

Suivant la même formulation, on peut aussi créer un graphe 3D en ajoutant une 3edimension et en utilisant la fonction plot3.

MATLAB

t ime = 0:0.001:4∗ pi ;x = sin ( t ime ) ;y = cos ( t ime ) ;z = t ime ;plot3 ( x , y , z , ’ k ’ , ’ L ineWidth ’ , 2 ) ;z label ( ’ Time ’ ) ; % <− u t i l e pour renommer les axes !

Introduction à Matlab 66 / 70

Page 67: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Visualiser une matrice

Une matrice peut être visualisée comme une grille de valeurs 2D en utilisant la fonctionimagesc :

MATLAB

mat = rand ( 6 4 ) ;imagesc ( mat ) ;colorbar

Vous pouvez aussi charger une image et l’afficher : l’image est en fait une matrice 2D.

MATLAB

mat = imread ( ’ lena .bmp ’ ) ;imagesc ( mat ) ;axis square ; %<− Pour s ’ assurer que les 2 axes ont l a meme longueur a l ’ ecran .

Introduction à Matlab 67 / 70

Page 68: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Affichage de graphes

Graphes de surfaces 3D

Il est aussi possible d’afficher des graphes en 3D sous forme de surfaces 3D. On utilise lafonction meshgrid qui nous génère nos points en x et en y .

MATLAB

x = −pi : 0.1 : pi ;y = −pi : 0.1 : pi ;

[X ,Y ] = meshgrid ( x , y ) ;

Z = sin (X) .∗cos (Y ) ;

surf (X ,Y, Z ) ;surf ( x , y , Z ) ;

En utilisant la fonction contour on peut générer les iso-contours de notre surface 3D :

MATLAB

contour (X ,Y, Z , ’ LineWidth ’ , 2 ) ;hold on ;mesh(X ,Y, Z ) ;

Introduction à Matlab 68 / 70

Page 69: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Références

Références

1 Interface du logiciel

2 Variables

3 Opérations mathématiques

4 Indexation des vecteurs et des matrices

5 Affichage de graphes

6 Références

Introduction à Matlab 69 / 70

Page 70: IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf · Organisation du travail avec les répertoires Documentation et aide Scripts 2 Variables

Références

Références

M. Descoteaux.Outils mathématiques du traitement d’images.Université de Sherbrooke, 2010.

Introduction à Matlab 70 / 70