IMN359 - Chapitre 1 Introduction à Matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf ·...

Preview:

Citation preview

IMN359Chapitre 1

Introduction à Matlab

Olivier Godin

Université de Sherbrooke

14 septembre 2016

Introduction à Matlab 1 / 70

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

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

Interface du logiciel

Interface du logiciel

Introduction à Matlab 4 / 70

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Références

Références

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

Introduction à Matlab 70 / 70

Recommended