imn359 - chapitre 1 introduction à matlabinfo.usherbrooke.ca/.../chapitres/imn359-chap01.pdf ·...
TRANSCRIPT
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