Vous êtes sur la page 1sur 20

Formation MATLAB Prise en main rapide de Matlab

Xavier Louchart

Formation Matlab - " prise en main rapide"

Gnralits
Session Matlab - Introduction
Dbut de session : aprs avoir lanc Matlab (icne / ou matlab sous Unix) >> est le prompt Matlab, la suite duquel vous entrerez les commandes Chaque commande entre et valide (Enter) donne l'cran le rsultat et le droulement des calculs intermdiaires. Pour ne pas afficher le rsultat l'cran et le dfilement des lignes, terminez chacune de vos commandes par ;

demo : helpwin : helpdesk :

Le premier cran de Matlab prsente quelques commandes : programme de dmonstration donnant une prsentation des fonctionnalits de base de Matlab ouvre une fentre Windows d'aide pour les fonctions Matlab ouvre documentation hypertexte Matlab dans votre Web browser prfr

Mais aussi : intro : lance une introduction Matlab info : informations sur les boites outils (Toolboxes) disponibles, Mathworks et divers Sortie de Matlab fin de session exit ou quit
No flops (fonction flops) : donne le nombre d'oprations effectues en calcul flottant

Vous pouvez enregistrer les commandes tapes et les rsultats affichs lors d'une session Matlab dans un fichier texte avec la commande diary.
diary nom_fichier puis diary ou diary off pour terminer.

L'aide dans MATLAB


help :

produit une liste des fonctions Matlab par catgories, pour chacun des rpertoires Matlab et des Toolbox installes, ainsi que vos propres rpertoires s'ils contiennent une fichier "Table of Contents" help <fonction ou commande> : fournit directement l'aide sur l'utilisation de la fonction ou de la commande indique Exemple :
help demo DEMO Run demonstrations. Type "demo" at the command line to browse available demos. With the optional action argument demo ('matlab'|'toolbox'|'simulink'|'blockset'|'stateflow'), DEMO opens the demo screen to the specified subtopic. With the optional categoryArg argument, DEMO opens to the specified toolbox or category, e.g. demo toolbox signal demo matlab language

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"


lookfor <mot-cl>:

fournit la liste des fonctions et commandes contenant le mot-cl spcifi dans la premire ligne de leur texte d'aide Exemple :
lookfor Newton NLINFIT Nonlinear least-squares data fitting by the Gauss-Newton method.

L'espace de travail
La session Matlab dmarre dans le rpertoire indique par dfaut dans les proprits du programme Matlab ("dmarrer dans"). Les commandes de dplacement dans l'arborescence des rpertoires et l'information sur les fichiers sont accessibles directement avec les commnades Dos et Unix classiques
pwd : donne le rpertoire de travail dans lequel vous tes cd .. ou cd <directory> : changement de rpertoire dir ou ls : liste des sous-rpertoires et fichiers ! <path\fic.exe> : lance n'importe quel excutable Dos ou Windows path : donne la liste de tous les rpertoires auxquels Matlab accs soit pour les programmes et

commnandes, soit pour les fichiers de donnes Modifications du path : Un menu spcial est prvu pour cela : File\Set Path Ceci vous permet de grer vos rpertoires (ajouter, supprimer).

Les types de donnes et variables - structures


Il y a un seul type de donnes : le type matrice (Matrix). Tout est matrice, y compris un nombre ou un caractre simple. Ceci implique qu'il n'y a pas de dclaration de types comme dans les autres langages de programmation, ni d'allocation en mmoire des variables utilises. On peut distinguer 3 types de base : - le scalaire : nombre ou caractre (matrix 1x1) - le vecteur : ligne ou colonne (matrix 1xN ou Nx1) - la matrice de dimension NxM Les donnes peuvent tre de plusieurs natures : - numrique : entiers et rels (double prcision) - caractre (2 octets) - simple caractre (1 octet) - complexe (2 x double prcision) - manquante : NaN (Not a Number) Attention, du fait de la non dclaration des types, certaines conversions sont automatiques Exemple :
x='a' % affectation du caractre "a" la variable x x = a x+2 % conversion automatique de x (code ASCII de a = 97) en entier ans = 99 (-1).^.5 % nombre complexe ans =

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"


6.123e-017 + 1i whos Name Size ans x 1x1 1x1

Bytes 16 2

Class double array (complex) char array

Grand total is 2 elements using 18 bytes

Gestion des donnes dans l'espace de travail Deux fonctions essentielles retenir : whos : donne l'information sur toutes les variables actuellement en mmoire, leur type, leur dimension clear : suppression d'une ou de toutes les variables actuellement en mmoire dans l'espace de travail

Les noms des variables et des fonctions sont sont composs de lettres et de chiffres, mais seuls les 19 premiers caractres sont significatifs. Ainsi, les noms mavariabledematrice et mavariabledematricecorrigee dsignent la mme variable. ATTENTION : Matlab fait la distinction entre les minuscules et les majuscules. Aux et AUX sont donc deux variables diffrentes. Quant aux structures des donnes, l'organisation par dfaut et la plus frquemment utilise est la matrice. Mais il en existe d'autres. Notamment : - tableau multi-dimensionnel (3D, 4D, nD) - structure utilisateur - cellule "non scalaire" - tableau multi-dimensionnel de structures - tableau multi-dimensionnel de cellules - objet (au sens programmation) - ensemble

Le mode interactif
Dans le mode interactif, Matlab peut tre utilis comme une "super-puissante calcultrice" scientifique, avec les oprateurs arithmtiques classiques et l'ensemble des fonctions de calcul numrique et de visualisation graphique. La syntaxe des commandes est la suivante : <expression mathmatique> fonction([liste d'arguments]) Exemples :
4+5 log(x)>y^2 x' plot(x,min(y(:,1),z(:,2)))

L'affichage des variables et des rsultats est automatique en fin de traitement. Il peut tre annul par ; en fin de ligne. Le ; est d'ailleurs vivement conseill dans la programmation, afin d'viter le dfilement l'cran des rsultats de toutes les lignes composant votre code. La cration d'objet se fait par affectation d'un rsultat de traitement : = Exemple x = 2+4.3 Si aucune affectation une variable n'est effectu, le rsultat est stock par dfaut dans la variable pr-dfinie ans Une affectation multiple se fait avec [ ] ATTENTION : l'ancienne valeur est systmatiquement crase. Xavier Louchart 3 17/04/01

Formation Matlab - " prise en main rapide"

Variables spciales et constantes


Certaines constantes et variables sont pr-dfinies : pi : 3.14159265358979 eps : 2.2204e-16 (distance entre 1.0 et le flottant le plus proche) ; cette valeur peut tre modifie Inf (Infinite) : nombre infini (exemple 1/0) NaN (Not a Number) : n'est pas un nombre, exprime parfois une indtermination (exemple 0/0). A noter que certaine fonction tiennent compte des valeurs NaN (ex. NANMEAN, NANMEDIAN, NANSTD, NANMIN, NANMAX, NANSUM). ans : variable contentant la dernire rponse.

Exemples et info supplmentaires


NaN Not-a-Number. NaN is the IEEE arithmetic representation for Not-a-Number. A NaN is obtained as a result of mathematically undefined operations like 0.0/0.0 and inf-inf. See also INF.

ISNAN True for Not-a-Number. ISNAN(X) returns an array that contains 1's where the elements of X are NaN's and 0's where they are not. For example, ISNAN([pi NaN Inf -Inf]) is [0 1 0 0]. See also ISFINITE, ISINF. INF Infinity. INF returns the IEEE arithmetic representation for positive infinity. Infinity is also produced by operations like dividing by zero, eg. 1.0/0.0, or from overflow, eg. exp(1000). See also NaN, ISFINITE, ISINF.

ISINF True for infinite elements. ISINF(X) returns an array that contains 1's where the elements of X are +Inf or -Inf and 0's where they are not. For example, ISINF([pi NaN Inf -Inf]) is [0 0 1 1]. See also ISFINITE, ISNAN.

ISFINITE True for finite elements. ISFINITE(X) returns an array that contains 1's where the elements of X are finite and 0's where they are not. For example, ISFINITE([pi NaN Inf -Inf]) is [1 0 0 0]. For any X, exactly one of ISFINITE(X), ISINF(X), or ISNAN(X) is 1 for each element. See also ISNAN, ISINF.

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"

Oprations arithmtiques
Les oprations arithmtiques de base dans Matlab sont : + plus - Plus - minus - Minus * mtimes - Matrix multiply .* times - Array multiply ^ mpower - Matrix power .^ power - Array power \ mldivide - Backslash or left matrix divide / mrdivide - Slash or right matrix divide .\ ldivide - Left array divide ./ rdivide - Right array divide Les oprations peuvent tre enchanes en respectant les priorits usuelles des oprations et en utilisant des paranthses. Dans l'ordre des priorits :
1. () 2. ^, .^ 3. moins unaire 4. a:b , a:pas:b (squence) 5. *, .*, /, ./, \, .\ 6. +, - addition, soustraction scalaire ou matricielle

Les oprateurs logiques et relationnels


== ~= < > <= >=

Oprateurs relationnels eq - Equal ne - Not equal lt - Less than gt - Greater than le - Less than or equal ge - Greater than or equal

Oprateurs logiques & and - Logical AND | or - Logical OR ~ not - Logical NOT xor - Logical EXCLUSIVE OR any - True if any element of vector is nonzero all - True if all elements of vector are nonzero

Edition des lignes de commande


Matlab conserve l'historique des commandes entres de faon interactive lors d'une session. La version 6 conserve galement l'historique des commandes d'une session l'autre. Il est donc possible de rcuprer des instructions dj saisies et de les modifier dans le but de les rutiliser, et surtout de gagner du temps ! Les touches suivantes peuvent tre utilises pour rappeler une commande ou la modifier : passer l'instruction prcdente passer l'instruction suivante Xavier Louchart 5 17/04/01

Formation Matlab - " prise en main rapide" BackSpace Suppr Esc Dbut, Fin aller vers la gauche sur la ligne de commande aller vers la droite sur la ligne de commande effacer le caractre gauche du curseur effacer le caractre droite du curseur effacer la ligne de commande se positionner au dbut ou la fin de la ligne de commande

En tapant quelques caractres suivis de la touche , la dernire commande commenant par ces caractres est alors rappele sur la ligne de commande.

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"

Matrices et fonctions de base


Elments de base propos des Matrices Dsignation des lments d'une matrice : ligne / colonne
Exemple, matrice A A(i,j) cellule ime ligne et jme colonne A(i) cellule ime ligne et 1 colonne par dfaut quand rien n'est prcis A(:,j) toutes les lignes de la jme colonne A(i,:) toutes les colonnes de la ime ligne

Saisie d'une matrice


Les valeurs en colonne sont spares par une virgule ou un espace. Les lignes sont spares soit par un point-virgule
x=[0 ,1 , 2 ; 3 4 5] x = 0 1 2 3 4 5

soit par un retour la ligne


x=[0 1 2 3,4,5] x = 0 1 3 4

2 5

Dimensions de la matrice : fonction size


[m,n]=size(x) m = 2 n = 3

La fonction length donne la longueur d'un vecteur ou d'une matrice, c'est dire max(size(x)).

Manipulation des matrices


ajout :
[Mat1 Mat1 Mat2] ! ajout de matrices en ligne (mme nombre de lignes pour les matrices) [Mat1 ; Mat1 ; Mat2] ! ajout de matrices en colonne (mme nombre de colonnes pour les matrices)

suppression :
A(condition) = []

insertion : de la matrice Mat2 la ligne i : [A(1:i,:) ; Mat2 ; A(i+1:size(x,1),:)] de la matrice Mat2 la colonne j : [A(:,1:j) ; Mat2 ; A(:,j+1:size(x,2))]

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"

Fonctions de base
Matrices lmentaires Zeros array. Ones array. Identity matrix. Replicate and tile array. Uniformly distributed random numbers. Normally distributed random numbers. Linearly spaced vector. Logarithmically spaced vector. X and Y arrays for 3-D plots. Regularly spaced vector and index into matrix.

zeros ones eye repmat rand randn linspace logspace meshgrid :

Information basique sur les matrices size Size of matrix. length Length of vector. ndims Number of dimensions. disp Display matrix or text. isempty True for empty matrix. isequal True if arrays are identical. isnumeric True for numeric arrays. islogical True for logical array. logical Convert numeric values to logical. Manipulation des matrices Transpose matrix Change size. Diagonal matrices and diagonals of matrix. Extract lower triangular part. Extract upper triangular part. Flip matrix in left/right direction. Flip matrix in up/down direction. Flip matrix along specified dimension. Rotate matrix 90 degrees. Regularly spaced vector and index into matrix. Find indices of nonzero elements. Last index. Linear index from multiple subscripts. Multiple subscripts from linear index.

' reshape diag tril triu fliplr flipud flipdim rot90 : find end sub2ind ind2sub

Les matrices logiques sont des matrices dont les lments prennent pour valeur 1 (vrai) ou 0 (faux). Ces matrices sont le rsultat de fonctions logiques telles que : isnan, islogical, all, any Elles peuvent galement servir de matrice d'indices lors d'une affectation, notamment en se servant de la fonction find.

Exemple
x=[10 9 8 -1 7 6 -1 5 4 3]; i=find(x>=0) x_positif=x(i) i =

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"


1 2 x_positif = 10 9 size(x) size(x_positif) ans = 1 10 ans = 1 8 3 8 5 7 6 6 8 5 9 4 10 3

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide"

Entres / Sorties
L'objectif ici est de lire un fichier o sont stocks des donnes et d'crire un fichier pour sauvegarder des donnes ou pouvoir changer des fichiers avec d'autres logiciels. Il existe 2 types de fichier principalement : - les fichiers binaires : 2 formes * binaire Matlab (extension par dfaut .mat), reconnu par Matlab sur toutes les plateformes (PC, linux, Unix, Mac) * "vrai" binaire, dpendant du type de processeur. Ce cas n'est pas abord dans cette section. - les fichiers cods en caratres ASCII, ditables avec n'importe quel diteur (Dos, Ultraedit, Bloc notes Windows, Word en mode texte, Editeur Matlab (commande edit)) Deux fichiers exemples sont utiliss dans cette section : Fichier binaire Matlab (.mat) : data1.mat Fichier ASCII (.txt) : data1.txt

Lecture d'un fichier rcupration de variables Matlab sauvegardes


La fonction la plus utilise, la plus pratique et galement la plus rapide en lecture pour un fichier ASCII est la fonction load. Pour un fichier Matlab binaire, la syntaxe est : load data1, l'extension .mat est prise par dfaut vu que Matlab va d'abord rechercher dans les rpertoires de travail tous ses fichiers binaires. Matlab charge alors le nom des variables stockes dans le fichier binaire, si il existe. Exemple :
load data1 whos Name Debit Size 14x2 Bytes 224 Class double array

Grand total is 28 elements using 224 bytes

Pour un fichier ASCII, la syntaxe est la suivante : load 'data1.txt', le nom du fichier doit tre spcifi comme une chane de caractres. Par dfaut, la variable cre par Matlab qui contient les donnes lues dans ce fichier est le nom du fichier sans l'extension. Exemple :
load 'data1.txt' whos Name Size data1 14x2 Bytes 224 Class double array

Grand total is 28 elements using 224 bytes

L'avantage des fichiers binaires Matlab est le stockage des noms de variables, et la possibilt de stocker plusieurs variables de types diffrents. Le principal inconvnient est que vous ne pouvez ni diter ces fichiers pour les modifier ou voir ce qu'ils contiennent, ni les utiliser avec d'autres logiciels. En revanche, avec les fichiers ASCII, vous pouvez diter leur contenu, rajouter des commentaires transparents pour la lecture dans Matlab (tout commentaire commence par un %), et utiliser ces fichiers avec d'autres logiciels. Pour exemple, diter le fichier data1.txt. La fonction load avec les fichiers ASCII ncessite que chaque donnes du fichier soient spares par un/plusieurs espace(s) ou tabulation(s). Lorsque les donnes sont spares par une ponctuation autre (, ; :), c'est la fonction fscanf qui doit tre utilise, mais elle est plus complexe d'utilisation et plus lente en lecture ! Xavier Louchart 10 17/04/01

Formation Matlab - " prise en main rapide"

Ecriture dans un fichier sauvegarde de variables


Pour sauvegarder une ou plusieurs variables de votre espace de travail dans un fichier binaire Matlab .mat, utilisez la commande save :
save nom_fichier var1 var2 varN save nom_fichier sauve toutes les variables en mmoire D'autres options sont possibles avec la commande save.

Pour crire des donnes ou variables dans un fichier ASCII format, une succession de 3 commandes est utilise :
fopen, fprintf, fclose

Exemple : criture des des doones de la matrice data1 dans le fichier essai_ecriture.txt. On spare ici les 2 colonnes de la matrice par une tabulation, la premire colonne est formate en entier, la seconde en rel avec une dcimale.
fic=fopen('essai_ecriture.txt','w'); fprintf(fic,'%i\t%3.1f\n', data1'); fclose(fic) ou fclose('all')

Notez que l'on crit la transpose de data1 (data1'). En effet, Matlab lit les donnes en colonne et non en ligne, de mme qu'il numrote les indices d'une matrice en partant de la premire colonne, puis les suivantes. Quant au format d'criture, c'est une chane de caractres (' ') contenant les spcifications de conversion du langage C. Le type donnes doit commencer par un %, puis (pour les formats les plus frquents) i integer f rel, prcd eventuellement du nombre de chiffres et de dcimales : exemple 6.3f c caractre s chane de caractres Les format spcifiques sont les suivants : \n ligne suivante \r retour charriot \t tabulation \b backspace \f formfeed character Pour obtenir une backslash tapez \\ et un % tapez %%.

Xavier Louchart

11

17/04/01

Formation Matlab - " prise en main rapide"

Graphiques
De nombreux styles de graphiques sont disponibles sous Matlab, 2-D et 3-D. Pour une liste complte, consulter l'aide graph2D, graph3D et specgraph. Voici les plus courants :
plot, loglog, semilogx, semilogy, plotyy (2 axes y gauche et droite), plot3, mesh, surf, area, bar, errorbar, hist, pareto, pie, stairs, contour et bien d'autres.

L'objectif de cette section est de crer un graphique document et de modifier les diffrents objets composant le graphique. Pour cela, la fonction plot sera utilise. A noter que les lments prsents ici sont valables pour les versions 5.2, 5.3 et 6 de Matlab. Avec les versions 5.3 et 6, des botes de dialogues avec de nombreux paramtres et options facilitent la mise n forme des graphiques. Toutefois, il est quand mme bon de connatre ce qui est prsent par la suite pour crer des graphiques personnaliss sous forme de fonction ou de programme !

Fonctions graphiques de base Cration et annotation d'un graphique


Utilisons le jeu de donnes data1, ou Debit selon le fichier que vous avez lu prcdemment.
plot(Debit(:,1),Debit(:,2),'-ob')

10

15

20

25

30

Rajoutons quelques lments tels que titre, label de l'axe x, et une grille
xlabel('Temps en minutes depuis le dbut de la crue') ylabel('Dbit (L/s)') title('Exemple de fichier plot') grid on

Xavier Louchart

12

17/04/01

Formation Matlab - " prise en main rapide"


Exemple de fichier plot 6

3 D 2 1 0 0

10 15 20 Temps en minutes depuis le d

25

30

Apparemment, il y a quelques petits problmes lis l'utilisation de Notebook et Word7 !!! Les principales fonctions permettant le contrle des axes et du graphiques sont :
axis - Control axis scaling and appearance. zoom - Zoom in and out on a 2-D plot. grid - Grid lines. box - Axis box. hold - Hold current graph. axes - Create axes in arbitrary positions. subplot - Create axes in tiled positions. xlim - X limits. ylim - Y limits.

Les fonctions d'annotations du graphique sont : legend - Graph legend. title - Graph title. xlabel - X-axis label. ylabel - Y-axis label. text - Text annotation. gtext - Place text with mouse. plotedit - Experimental graph editing and annotation tools. Concernant l'impression des graphiques (impression via imprimantes ou dans un fichier) : print - Print graph or SIMULINK system; or save graph to M-file. printopt - Printer defaults. orient - Set paper orientation.

Xavier Louchart

13

17/04/01

Formation Matlab - " prise en main rapide" Pour certaines fonctions graphiques (comme plot), le style de courbe, la couleur et le type de symbole peuvent tre prciss directement comme paramtre (cf. la commande utilise prcdemment '-ob'). Les trois paramtres (couleur, marker et style de courbe) sont paramtrs chacun par un caractre comme suit :

couleur y yellow m magenta c cyan r red g green b blue w white k black

marker . point o circle x x-mark + plus * star s square d diamond v triangle (down) ^ triangle (up) < triangle (left) > triangle (right) p pentagram h hexagram

ligne - solid : dotted -. dashdot -- dashed

Superposition et juxtaposition de graphiques


Pour superposer plusieurs tracs ou courbes sur le mme graphique, il faut activer la commande hold. hold on permet de superposer les tracs hold off indique que le prochain trac raffrachira la fugure (quivaut effacer la figure cf. commande cla, clf) Lors d'une superposition de courbes, la mise l'chelle est automatique. La juxtaposition de graphique se fait facilement l'aide de la commande subplot : subplot(n,m,i) n : nombre de lignes m : nombre de colonnes i : slection du subplot Egalement, possibilit de dfinir soit mme la taille du graphique avec : subplot('position',[g d b h]), g d b h tant dans l'intervalle [0 1]. Exemple :
subplot(2,2,1) bar([1 2 3 4 5 6]) subplot(2,2,2) plot(Debit(:,1),Debit(:,2),'^r:') subplot(2,2,3) stairs(cumsum(Debit(:,2))) subplot(2,2,4) area(Debit(:,1),Debit(:,2))

Xavier Louchart

14

17/04/01

Formation Matlab - " prise en main rapide"


6 6

0 1 25 20 15 10 5 0 0 5 10 15 2 3 4 5 6

0 0 6 10 20 30

10

20

Accs aux objets graphiques et modifications de leurs proprits Principes et commandes de base
L'organisation des objets sous Matlab respecte la hirarchie suivante :
Root

Figure

Uicontrol

Axes

Menu

Image

Line

Patch

Surface

Text

Light

Les figures (fentre o sont affiches les graphiques ou images), les graphiques, les objets composant le graphique (axes, courbes, lgende ) sont des objets possdant de nombreuses proprits (appel handle). Ils hritent des proprits de leurs "parents", selon l'organigramme hirarchique prcdent. Afin de pouvoir les modifier (couleur, position, taille, police, format, ) il faut au pralable rcuprer ces "handle" dans une variable quelconque. Exemple (en reprenant la commande prcdente) :
h=plot(Debit(:,1),Debit(:,2),'-ob')

Deux fonctions indispensables permetent alors de grer ces handle : get : lire les paramtres graphiques set : modifier ces paramtres Pour lister les diffrentes proprits du graphique plot (dsormais variable h), utilisez la fonction get : Xavier Louchart 15 17/04/01

Formation Matlab - " prise en main rapide"


get(h) Color = [0 0 1] EraseMode = normal LineStyle = LineWidth = [0.5] Marker = o MarkerSize = [6] MarkerEdgeColor = auto MarkerFaceColor = none XData = [ (1 by 14) double array] YData = [ (1 by 14) double array] ZData = [] ButtonDownFcn = Children = [] Clipping = on CreateFcn = DeleteFcn = BusyAction = queue HandleVisibility = on HitTest = on Interruptible = on Parent = [2.00024] Selected = off SelectionHighlight = on Tag = Type = line UIContextMenu = [] UserData = [] Visible = on

Pour lister les diffrentes options modifiables d'une des proprits, utilisez la commande set :
set(h) Color EraseMode: [ {normal} | background | xor | none ] LineStyle: [ {-} | -- | : | -. | none ] LineWidth Marker: [ + | o | * | . | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ] MarkerSize MarkerEdgeColor: [ none | {auto} ] -or- a ColorSpec. MarkerFaceColor: [ {none} | auto ] -or- a ColorSpec. XData YData ZData ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] HitTest: [ {on} | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag

Xavier Louchart

16

17/04/01

Formation Matlab - " prise en main rapide"


UIContextMenu UserData Visible: [ {on} | off ]

Afin de modifier une des proprits, il suffit d'utiliser la mme commande set, mais en spcifiant la proprit que vous souhaitez changer (sous forme de chane de caractres, ainsi que sa nouvelle valeur). Exemple : changement du style de marker : x la place d'un o
set(h,'Marker','x')

changement de la couleur :
set(h,'Color',[1 0 0]) % composante R V B entre 0 et 1

Bien videmment, vous pouvez combiner plusieurs changements de proprits avec une seule commande set. Il suffit de sparer chaque couple ("nom_proprit" " valeur") par une virgule. Ceci donne par exemple :
set(h,'Marker','x', 'Color',[1 0 0], 'LineStyle',':')

A noter que certaines variables sont pr-dfinies, telles que les proprits des acex, des figures ou des objets prsents dans une figure :
gca gcf gco : GetCurrentAxes : donne le handle des axes actuels : GetCurrentFigure : donne le handle de la figure actuelle : GetCurrentObject : donne le handle de l'objet actuellement slectionn sur la figure

Ainsi, la commande suivante renvoie :


get(gcf) BackingStore = off CloseRequestFcn = closereq Color = [0.855388 0.855388 0.855388] Colormap = [ (64 by 3) double array] CurrentAxes = [7.00012] ... UserData = [] Visible = off

Egalement, connatre les valeurs des proprits dans la hirarchie : get(get(gcf,'Children'))

Gestion des axes


Comme indiqu ci-dessus, gca renvoie le handle des axes. Pour obtenir directement les proprits des axes, tapez get(gca). Si l'on souhaite modifier certaines proprits, comme - la position de l'axe des x (top / bottom) : XAxisLocation - la direction de l'axe (normal, invers) : XDir - les limites des axes : Xlim, Ylim, Zlim - le titre : Xlabel - les ticks (graduation des axes) : XTick - le label des ticks : XtickLabel - l'chelle (normale ou log) : Xscale - 17

Xavier Louchart

17/04/01

Formation Matlab - " prise en main rapide" il suffit tout simplement d'utiliser la fonction set avec les diffrentes proprits que l'on souhaite modifier. Exemple :
set(gca, 'XaxisLocation', 'top', 'Xtick', [0 5 1 0 15 20], 'XtickLabel', ['0|5|10|15|20'], 'Xlim',[-1 21], 'Xdir','reverse')

Notez dans l'exemple prcdent que chaque ligne se termine par 3 points, ce qui signifie que l'on continue la ligne suivante. Ceci est assez pratique dans les programmes et rend plus lisible les numrations longues de proprits ou d'affectation.

Gestion des couleurs


Il existe un jeu de couleurs fixes (blanc, noir, rouge ,vert ) et un jeu de couleurs dfini par une table de couleurs (colormap). Chaque couleur est dfinie par 3 valeurs comprises dans [0 1] correspondant l'intensit de Rouge, Vert, Bleu composant chacune des couleurs. Ainsi,
[0 0 0] [1 1 1] [1 0 0 ] [0 1 0] [0 0 1] [.3 .3 .3] [.6 .6 .8]

: : : : : : :

noir ('k') blanc ('w') rouge ('r') vert ('g') bleu ('b') gris sombre gris bleut

Quelques tables prdfinies (colormap) : gray, hot, hsv, cool, bone, copper Visualisation du colormap : colorbar Modification de la couleur : Exemple : couleur de fond de la figure en noir :
set(gcf,'Color',[0 0 0]) ou set(gcf,'Color','k')

Xavier Louchart

18

17/04/01

Formation Matlab - " prise en main rapide"

Sujets non traits (a faire !!!)


structures polynmes nombres complexes chanes de caractres dates et heures graphiques 3D fichiers et programmations

Quelques rfrences consulter


Bien sr l'aide en ligne de Matlab, indispensable ! Sinon, quelques livres disponibles la bibliothque * Mokhtari, M, Mesbah, A., 1997. Apprendre et matriser Matlab versions 4 et 5 et Simulink . Springer-Verlag * Mokhtari, M, Mesbah, A., 1998. Applications de MATLAB 5 et Simulink 2. Springer-Verlag. * La documentation papier (english) de Matlab et des diffrentes Toolbox que nous possdons au labo. La liste des livres traitant de Maltab et de ses applications : http://www.fr.mathworks.com/support/books/index.php3 Pour tout autre information, FAQ, news, support technique http://www.fr.mathworks.com http://www.mathworks.com

Xavier Louchart

19

17/04/01

Vous aimerez peut-être aussi