Download presentation
Presentation is loading. Please wait.
Published bySophie Bordeleau Modified over 8 years ago
1
1 GPA659: Vision Artificielle ( Lab 01 – Introduction à MATLAB ) Prof. Ismail Ben Ayed Ismail.benayed@etsmtl.ca
2
2 Plan - Lab 1 Les essentiels de MATLAB –L’interface et l’aide en ligne –Les matrices: Termes et définitions –Expressions et variables Opérations et commandes Programmation, M files et fonctions dans MATLAB
3
3 MATLAB: MATrix LABoratory –Environnement spécialisé pour le calcul scientifique – Logiciel très puissant: L’analyse et la visualisation de données; la modélisation; la statistique et l’analyse d’images. Commandes textuelles interprétées par le logiciel –Logiciel et langage de programmation en même temps; s’apprend au fur et à mesure et l’effort en vaut vraiment la peine C’est quoi MATLAB
4
4 L’interface de MATLAB : Fenêtre de travail: Commandes ici Repertoire de travail
5
5 L’aide en ligne dans MATLAB Choisissez une option sous le menu ‘’Help’’, ou tapez helpwin à la ligne de commande. Aide sur des fonctions spécifiques: taper help ‘’nom de la fonction’’ à la ligne de commande. Example: help mean Les exemples de MATLAB (sous le menu ‘’Help’’) peuvent être très utiles. Vidéos/démos, ex., http://www.mathworks.com/videos/getting- started-with-matlab-101684.htmlhttp://www.mathworks.com/videos/getting- started-with-matlab-101684.html
6
6 Les matrices: Termes et définitions Dans MATLAB, l’unité fondamentale est la matrice Ensemble de nombres ordonnées dans des lignes et des colonnes. Une case dans une matrice est désignée par A(i,j) ou i est la ligne et j est la colonne.
7
7 Les matrices: Termes et définitions Exemples: Matrice carrée, matrice ligne, matrice colonne
8
8 Les matrices: Termes et définitions En général, une matrice peut être dénotée comme :
9
9 Les matrices: Termes et définitions En général, une matrice peut être dénotée comme: Toutes les données que vous manipulez dans MATLAB doivent être entrées où crées en tant qu’une matrice.
10
10 L’entrée d’une matrice en MATLAB Il y a quatre moyens de créer une matrice dans MATLAB: taper la liste d’éléments à la ligne de commande générer les éléments à l’aide de fonctions intrinsèques du logiciel (‘’built-in functions’’) générer les éléments avec vos propres fonctions écrites en MATLAB saisir des données d’un fichier externe
11
11 L’entrée d’une matrice en MATLAB À FAIRE: Tapez: A = [1 2 3; 4 5 6; 7 8 9] Entrée Crée A en entrant une liste d’éléments à la ligne de commande À FAIRE: Vérifiez que A paraît dans ‘’Workspace’’ Double-cliquez sur A dans cette fenêtre pour voir l’ensemble des éléments. Ensuite, tapez A Entrée à la ligne de commande pour voir les éléments. À FAIRE: Tapez: B = 6 Entrée. Vérifiez que la matrice scalaire, B, paraît dans la fenêtre Workspace.
12
12 L’entrée d’une matrice en MATLAB Les éléments d’une matrice peuvent être n’importe quelle expression mathématique valide. Par exemple: À FAIRE: X = [1.47 sqrt(2) (9+3)/7] Entrée Ces expressions sont par contre simplifiées immédiatement: X = 1.4700 1.4142 1.7143
13
13 L’entrée d’une matrice en MATLAB Pour entrer une matrice d’un fichier externe: À FAIRE : Ouvrez bloc-notes (Notepad) et tapez: 3 6 7 9 2 4 3 6 9 0 3 2 Sauvegardez votre fichier sous le nom mamatrice.txt dans votre répertoire de travail Retournez à la fenêtre principale de MATLAB. À la ligne de commande, tapez: load mamatrice.txt puis Entrée La matrice ‘’mamatrice’’ devrait paraître dans votre Workspace. tapez: mamatrice Entrée et vérifiez que les éléments sont corrects.
14
14 Les éléments d’une matrice Pour accéder à un élément spécifique dans une matrice, on indique ces coordonnées (i,j) dans des parenthèses, ex.: mamatrice(2,4) A(2,2) On peut changer les valeurs des éléments de la façon suivante: A(2,2)=1 X(1) = sqrt(X(3)) Une grande matrice peut être construite à partir de matrices plus petites. À FAIRE Tapez: P = [3 6 4] Entrée A = [A;P] Entrée Le point-virgule fait en sorte que P est rajouté comme une ligne à la fin de la matrice A
15
15 Extraction de matrices On peut extraire une matrice plus petite d’une plus grande, ex. C = A(1:3,:) extrait C de A ou C comprend les 3 premières lignes de A et toutes les colonnes. Usage des deux-points pour dire « de 1 à 3 » pour extraire les lignes 1 à 3 de la matrice A. Dans le deuxième cas, comme on ne spécifie pas de limites, toutes les colonnes sont extraites L’expression A( :, :) veut donc dire tout A. On peut aussi utiliser: D= A(1:3,2:end) extrait les colonnes à partir de la deuxième jusqu’à la dernière. utile lorsque la dimension de la matrice dépendait de quelque chose calculé plus haut dans le programme (évite de reporter cette valeur à chaque fois)
16
16 Quelques expressions utiles: ones(m,n): créer une matrice de m x n '1’, ex.: ones(5,1) zeros(m,n): créer une matrice de m x n '0' rand(m,n): créer une matrice de m x n valeurs aléatoires, distribuées uniformément entre 0 et 1 randn(m,n): créer une matrice de m x n valeurs aléatoires, distribuées normalement avec une moyenne de zéro et un écart-type de 1 (distribution Gaussienne) A = [1:100]: créer une matrice A contenant les valeurs de 1 à 100 A = [1:2:100]: créer une matrice A contenant les valeurs de 1 à 100 en incréments de 2 A = [1:0.01:100]: créer une matrice A contenant les valeurs de 1 à 100 en incréments de 0.01
17
17 Expressions et variables Vous pouvez entrer des commandes du type: variable = expression ou du type: expression Les expressions sont composées de noms de variables, d’opérateurs (ex., + - *), ou de fonctions (ex., sin, mean). À FAIRE: Tapez les expressions suivantes: 3+4 sin(90) 8*7/pi Une matrice résultat est créé (s’appelle « ans » par défaut). ans+1 Si une expression termine avec un point-virgule, le calcul est fait mais le résultat n’est pas affiché (pratique avec de grandes matrices !), Ex. b = 3*4;
18
18 Effacer des variables Tapez clear mavariable pour effacer la matrice qui s’appelle ‘’mavariable’’ Autre option: sélectionnez ‘’mavariable’’ dans la fenêtre workspace et cliquez sur supprimer. clear all efface toutes les variables.
19
19 Nombres et expressions arithmétiques Plusieurs façons pour entrer des nombres, ex., 0.0007, 1234.6, -45, 1.453e-23 Opérateurs arithmétiques (les parenthèses ( ) peuvent aussi êtres utilisées de la façon habituelle): + addition - soustraction * multiplication / division ‘’droite’’ \ division ‘’gauche’’ ^ exposant
20
20 Nombres et expressions arithmétiques Attention aux multiplications de matrices: A*B: multiplication standard en algèbre linéaire A.*B: multiplications élément par élément La multiplication d’une matrice par une valeur scalaire (Ex., 2*A) multiplie tous les éléments de la matrice par cette valeur scalaire À FAIRE: A=ones(4,4) B=2*A A.*B A*B
21
21 Fonctions mathématiques Plusieurs sont disponibles (la plupart des fonctions régulières): Ex.: abs, sqrt. Voire l’aide (help) pour une liste complète. Certaines fonctions génèrent des valeurs spéciales, Ex.: pi. Essayez: x = pi MATLAB comprend aussi l’infinité! Essayez: x = inf x = -inf x+1 1/x
22
22 Fonctions MATLAB La richesse de MATLAB: des centaines de fonctions préprogrammées. Plusieurs analyses peuvent être faites grâce à ces fonctions avec très peu de programmation additionnelle. En plus, il y a aussi ‘’MATLAB central file exchange’’ (Partage de codes MATLAB), vous n’avez qu’à faire une recherche (vous pouvez même trouvez des codes à votre de prof du cours vision artificielle et les notez!): http://www.mathworks.com/matlabcentral/fileexchange/ Important: Toujours citer la référence même si c’est un code!
23
23 Fonctions MATLAB Syntaxe générale pour une fonction: [A, B, …] = nom_de_la_fonction(argument1, argument2, …) où: A,B … sont des noms des variables de sortie de la fonction i.e., la réponse (s’il y a juste 1 variable, les parenthèses carrés ne sont pas nécessaires) Les arguments sont les variables d’entrée de la fonction i.e., les valeurs à analyser. Comme arguments, vous pouvez fournir –des valeurs constantes : 2.3 –des noms de variables –des expressions: 4.5/9 –autres fonctions: sqrt(2.3) –ou des expressions plus complexes : log(sqrt(2.3)) À FAIRE : Essayez quelques fonctions, Ex., mean, std, min, max, sum, find, plot (consultez l’aide pour savoir comment les utiliser)
24
24 Fermer/sauvegarder ‘’Workspace’’ Pour fermer MATLAB: Taper quit à la ligne de commandes Autre option: ‘’Exit MATLAB’’ du menu ‘’File’’ Sauvegarder votre session avant de quitter: Utiliser commande save, Ex., save montravail sauvegarde toutes les variables du Workspace dans le fichier montravail.mat Vous pouvez aussi utiliser « Save » sous le menu « File » Ouvrir votre fichier ‘’.mat’’ Tapez load montravail (il faut que le fichier soit dans le répertoire de travail) Sinon utilisez ‘’Open’’ sous ‘’File’’ Il est aussi possible de sauvegarder seulement certaines variables ou de sauvegarder sous des formats compatibles avec autres logiciels. Pour de plus amples informations, voir ‘’help’’ sur ‘’save’’ (help save).
25
25 Manipulation de vecteurs et matrices: concepts avancés À FAIRE: B = 1:0.5:4 L’incrément peut aussi être négatif. La matrice générée est toujours une ligne. Pour générer une colonne: C = (1.2:0.6:7.8)’ Donc le ' transpose les lignes et les colonnes d’une matrice. À FAIRE: M = [3 4 6 ; 9 8 7] size(M) M' size(M) Aussi : on peut créer des matrices qui sont vides: y=[ ]; isempty(y)
26
26 Indexation (vecteurs) Un élément individuel dans une matrice peut être spécifié en mettant ses indices entre parenthèses, Ex., A(2,3) On peut aussi utiliser un vecteur d’indices pour trouver plusieurs éléments à l’intérieur d’une matrice. À FAIRE: F = 2.0:0.5:7.0 G = 1:2:11 Notez que G contient les valeurs 1 3 5 7 9 11 et peut donc être utilisé pour trouver chaque élément de F d’index impair: Entrez: F(G) Les valeurs résultantes sont donc F(1), F(3), F(5) etc. à F(11)
27
27 Indexation (Matrices) Même logique pour trouver des éléments d’une matrice. La matrice est manipulée comme si toutes les colonnes étaient mises l’une par dessus l’autre (c’est similaire à l’operateur ‘’:’’ appliqué à la matrice): À FAIRE: 1 2 3 Entrer la matrice: H = 4 5 6 7 8 9 Créez le vecteur: K = 1:2:9 Entrer: H(K) Notez que le vecteur K contient les valeurs: 1 3 5 7 9 et donc H(K) veut dire : H(1), H(3), H(5), H(7) et H(9). Dans la notation 2D ces indices sont équivalents à H(1,1), H(3,1), H(2,2), H(1,3) est H(3,3). À FAIRE: Entrez: H(8) puis Entrez: H(5) On peut donc toujours indiquer les éléments d’une matrice en 2D par des valeurs simples équivalentes. H(:) ou H( :, :) réfère à tous les éléments d’une matrice.‘’:’’ mets les éléments d’une matrice dans un vecteur
28
28 Indexation (Matrices) À FAIRE: Créez la matrice: K = rand(10,7) Trouvez la sous-matrice: L = K(2:7,3:5) Ici, on choisit une sous-matrice de 6 x 3. Trouvez la sous-matrice: L = K(:,3:5) Ici, on choisit une sous-matrice de 10 x 3 avec toutes les lignes de K et les colonnes 3 à 5. On peut aussi mettre les indices dans des variables, Ex.,: À FAIRE: Créez le vecteur N = [1 2 5] Créez le vecteur O = [1 3 7] Trouvez la matrice P = K(N,O)
29
29 Assemblage de Matrices Les parenthèses carrées peuvent servir pour assembler une grande matrice à partir de quelques matrices plus petites Le point-virgule indique le début d’une nouvelle ligne. À FAIRE: 1 2 3 Entrez la matrice : A = 4 5 6 7 8 9 Créez la matrice ligne : T = [34 65 12 87] Créez la matrice colonne : U = [5 8 2]’ Pour insérer la colonne U à la droite de la matrice A et ensuite pour insérer la ligne T en bas, entrez : V = [A U;T] Pour ces opérations, les dimensions doivent être les bonnes.
30
30 Opérations matricielles Certaines opérations sont effectuées sur l’ensemble d’une matrice et d’autres sont effectuées un élément à la fois. Les symboles : +, -, *, /, \, ^, ' dénotent des opérations matricielles. Pour spécifier qu’une opération devrait être effectuée un élément à la fois, on précède le symbole par un point :.*./ etc. À FAIRE: Essayez : B=A’ A.^B A./B A.^ 2 A^2
31
31 Opérateurs relationnels Il y a 6 opérateurs relationnels qui peuvent être utilisés pour comparer des matrices ayant les mêmes dimensions: Choix entre le symbole ou l’expression alphanumérique (ex., eq ou ==). Pour une matrice, ces opérations s’appliquent aux éléments. On compare chaque élément d’une matrice avec l’élément correspondant dans une autre matrice. Le résultat est une matrice de 0 et de 1; les 1 représentent VRAI et les 0 représentent FAUX. À FAIRE: 5 + 5 == 9 (ou eq(5+5,9)); A == B (donne une matrice 3 x 3); A < B Question: Comment faire pour savoir si deux matrices sont égales. Indice: s’aider des fonctions max ou min ou encore sum.
32
32 Opérations logiques Il y a six opérations logiques: À FAIRE: Trouvez: C = A & B Trouvez: D = A | B Trouvez la matrice pour l’affirmation A > 7 par: E = A > 7 Trouvez la matrice pour l’affirmation B < 7 par: F = B < 7 Trouvez: G = E | F Trouvez la même matrice que G par: H = (A > 7) | (B < 7) Trouvez le complément logique de A par: K = ~A En utilisant any, trouvez un moyen pour savoir si deux matrices sont égales (pour tous leurs éléments)
33
33 Les fichiers M Scripts et fonctions Les fichiers M: permettent de sauvegarder du code (programme) MATLAB pour usage ultérieur. Deux types de fichier M: Les scripts: pas d’arguments d’entré ou de sortie, et opère seulement sur les données dans le Workspace. Les fonctions: arguments d’entré et de sortie. Les variables arguments sont partagées avec le Workspace, mais les variables internes sont locales. Attention: Les fichiers M doivent être dans le répertoire de travail ou dans un répertoire défini dans votre espace de recherche (search path) pour être disponible. Si vous avez plusieurs fichiers M avec le même nom, le premier trouvé est exécuté!
34
34 Les scripts M: exemple À FAIRE: Créez les matrices suivantes : A = [3 5 7 9]; B = [98 53 0 2]; Utilisez l’éditeur de Matlab pour créer le fichier M (‘’new’’ puis ‘’script’’) que vous nommerez exemple1.m qui contient : C = A.* B; D = max(C) * sum(B); E = D + 100 Sauvegardez le fichier exemple1.m dans votre répertoire de travail. Maintenant ‘’exécutez’’ le script exemple1.m en entrant ‘’exemple1’’ à la ligne de commande! Faites des changements aux éléments des matrices A et B et exécutez à nouveau « exemple1 ». Bravo, vous avez crée votre premier script dans un fichier M !
35
35 Les scripts M: exemple À FAIRE: Créez un script qui génère 2 séries de valeurs t = [1:100] et x=2*t et qui affiche x en fonction de t dans une figure de type ‘’plot’’ avec des titres sur les axes. Indice: Utilisez la commande help pour consulter l’aide sur les commandes xlabel et ylabel) Sauvegardez et exécutez votre script. Ensuite, modifiez votre script pour que x = sin(t/2p). Sauvegardez et exécutez votre script de nouveau.
36
36 Les fonctions M: exemple Créez Supposons que nous voulons calculer la température en fonction de l’altitude, selon la relation suivante, pour différentes stations: temperature = 30 - 0.00452 * altitude La structure d’une fonction est simple : function [ arg1, arg2, …] = nom_de_la_fonction(par1, par2,…) % Fonction température en fonction de l’altitude function [temperature]=temp_alti(altitude) temperature = 30-0.00452 * altitude % Fin de la fonction Sauvegarder la fonction et faire dans la ligne de commandes: T = temp_alti(34) ou altitude = 34; T = temp_alti(altitude)
37
37 Les fonctions M: exemple % Fonction qui fait la somme des éléments de la colonne i de la matrice A function [total]=total_locataires(A, i) total = sum( A(:, i)) % Fin de la fonction Créez une matrice de votre choix et essayez cette fonction
38
38 Le langage de programmation Très similaire à celui ou ceux que vous connaissez If…end Avec l'instruction "if... end", une condition est testée. Si la condition est vraie, les commandes à l'intérieur de l'instruction (avant le "end") sont exécutées. Exemple:
39
39 Le langage de programmation if…else…end Des commandes différentes sont exécutées si la condition est fausse. Exemple:
40
40 Le langage de programmation If…elseif…else…end Peut introduire 2 conditions différentes (ou plus si vous utilisez plusieurs elseif): Exemple:
41
41 Le langage de programmation Le For Permet d’exécuter une suite de commande à mainte reprises, ex., un script qui doit répéter le même calcul 100 fois. Exemple 1: Exemple 2 Exemple 3: D’autres exemples plus avancés dans le document Moodle
Similar presentations
© 2025 SlidePlayer.com Inc.
All rights reserved.