Vous êtes sur la page 1sur 29

Introduction 2008

MATLAB.

w
Georges Rodriguez-Guisantes Dpt. COMELEC

Dernire mise jour : Janvier 2008

Introduction

MATLAB

Introduction.
MATLAB est une application scientique interactive oriente au calcul vectoriel et matriciel

avec une puissante librairie de visualisation. Vous pouvez rsoudre des problmes de calcul trs complexes d'une faon simple et rapide compare aux langages de programmation traditionnels du type

C ou FORTRAN. Le nom MATLAB est driv de l'anglais MATrix LABoratory.

Ce rsum vous prsente d'une faon simple, les principales ides pour pouvoir utiliser cet outil de simulation sur les stations de travail disponibles au Centre de Calcul. Il ne remplace pas le guide de l'utilisateur fourni avec l'application (

MATLAB).

User's Guide and Reference Guide for

Ce rsum, plus l'aide en ligne, sut largement pour dvelopper des applications

relatives au cours de CAN. Vous tes invits vrier tous les exemples ici prsents directment sur un PC ou station UNIX. Une fois tablie une session

MATLAB,

seignements relatifs la fonction

nomdefonction

la commande

help nomdefonction,

fournie tous les ren-

. Par exemple, la commande

toutes les options de la fonction de reprsentation graphique (

help

montre le liste des domaines qui ont une aide en ligne. Ainsi

les fonctions en relation au domaine. Essayez, par exemple, groupes la n de cet annexe (extrait du guide de un tour d'horizon de

MATLABsous

help domaine ache toutes help comm. Ces fonctions sont rel'utilisateur). La commande demo prsente

plotting)

help plot

donne

en 2D. La commande

la forme d'exemples.

Les commandes de base.


Pour dmarrer une session

MATLABil sut d'entrer la commande matlab partir de la ligne de commandes d'une session DOS ou en cliquant sur l'icne MATLAB, partir de WINDOWS. Sur une station UNIX il sut de taper matlab partir de la ligne de commande. Une session intractive est automatiquement ouverte ; MATLABattend des commandes la suite du symbole . Essayez  help
Pour quitter une session

MATLABil

sut de taper

exit.

Les matrices.

MATLABtravaille

essentiellement avec un seul type d'objet mathmatique : une

tangulaire avec des valeurs entires, relles ou complexes.

Toutes

matrice

rec-

les variables sous

reprsentes comme des matrices. Ainsi un scalaire sera pour introduire une matrice sous

MATLABune

MATLABsont
Comment

matrice de 1 ligne et

1 colonne. Les matrices avec une seule ligne ou une seule colonne sera un

MATLAB ?

vecteur.

Plusieurs formes peuvent tre envisages :

1. comme une liste explicite des lments de la matrice, 2. grce des fonctions internes

MATLABou

des fonction externes dnies par l'utilisateur,

3. cre dans un chier externe avec votre diteur prfr, 4. charge partir d'un chier externe produit par un autre utilisateur ou une autre application. Les commandes suivantes crent une matrice appele

A (3 3)

A = [1 2 3; 4 5 6; 7 8 9]; A = [
2 2

Introduction

MATLAB

1 2 4 5 7 8
Essayez ! ! Le

3 6 9 ];

dans la dclaration de la matrice indique

passage la ligne suivante.

Le

peut tre

supprim si on passe la ligne suivante. Essayez ! ! Pour entrer une matrice complexe il sut d'utiliser l'une des formes ci-dessous :

A = [1 2;3 4] + i*[5 6;7 8] ; A = [1+5i 2+6i;3+7i 4+8i];


Pour visualiser le contenu de

il sut de faire

(attention sans

la n). Le symbole

la n d'une ligne de commande vite l'achage du

contenu de la variable dnie. Essayez de faire :

A = [1 2;3 4] + i*[5 6;7 8]


Le symbole

i ou j

peut tre utilis comme unit imaginaire.

ATTENTION ! : si vous utilisez

ou

pour dnir une nouvelle variable, vous crasez l'unit imaginaire. Dans ce cas elle peut

tre rednie avec

ii = sqrt(-1). A.ext le nom de ce chier. La commande load A.ext, lit ce l'environnement de travail MATLAB(le workspace).

Si la matrice est de trs grandes dimensions, il est plus simple de la crer dans un chier externe ASCII avec votre diteur prfr. Ce chier doit contenir tout simplement les valeurs du tableau rectangulaire souhait. Soit chier et dnit la matrice Il y a des fonctions

A dans MATLABpr-dnies qui permettent de crer des matrices rapidement. Les commandes rand, magic ou hilb, sont des exemples simples. La commande rand(n) dnit dans le workspace une matrice de nxn valeurs alatoires uniformment distribus dans l'intervalle [0, 1).
Les valeurs particulires d'un vecteur ou d'une matrice peuvent tre lues en indiquant entre parenthses les indices. Ainsi, la commande la troisime colonne de

A.

De faon similaire,

A(2,3) ache l'lment de la deuxime ligne et x(3) indique le troisime lment du vecteur x.

Essayez ! ! Les indices de ligne et colonne doivent tre des entiers

positifs.

Oprations avec les matrices.


Les oprations matricielles suivantes sont valables sous + addition soustraction multiplication puissance conjuge et transpose

MATLAB

\
/

division gauche division droite

Introduction

MATLAB

videmment ses oprations sont aussi valables pour les scalaires (puisqu'il s'agit de matrices de

1 1 !).

Si les dimensions des matrices sont incompatibles, un message d'erreur est ach,

sauf pour le cas d'une opration par scalaire ; dans ce cas, l'opration par le scalaire s'eectue sur tous les lments du tableau. La et

division matricielle mrite un commentaire part. Si A est une matrice carre inversible
A,
alors :

est un vecteur de dimension compatible avec

x=A\b;
est la solution de

A x = b.

Respectivement

x=b/A;
est la solution de

x A = b.

Oprations avec les vecteurs.


Les oprations d'addition et soustraction entre matrices se ralisent

lment lment. Il en point-toile !).

est pas de mme pour le produit, la division et la puissance de matrices. Le produit de deux matrices de mmes dimensions ne correspond pas au produit lment lment. Il est possible de faire des produits lment lment grce l'oprateur

(il s'agit bien de

Ce genre d'oprateur est trs utile puisqu'il permet de raliser des oprations entre matrices de dimensions incompatibles. Par exemple, supposons vouloir le produit lment lment des deux vecteurs suivants :

x = [1 2 3 4 5]; y = [2 2 2 2 2];
Les commandes :

z =x.*y; z
achent

z =

2 4 6 8 10
Essayez la commande :

z =x*y;
La version

lment lment existe aussi pour les oprations puissance et division.

Introduction

MATLAB

Expressions et variables.

MATLABest

un langage

interprte ;

les expressions que vous entrez dans l'ordinateur sont in-

terprtes et calcules. Une commande

variable = expression,

MATLABest

de la forme

ou bien tout simplement

expression

Les expressions sont composes par des oprateurs, des fonctions et des variables. Le rsultat de l'expression est sauvegard dans la matrice la matrice de commande, alors la matrice qui rsulte de l'valuation de l'

ATTENTION ! ! MATLABdistingue mayuscules et minuscules ! Typiquement, UT c'est pas la


La commande

ans

(pour

answer).

variable. Si variable n'est pas dnie dans la ligne expression, est sauvegarde dans

mme chose que le

wokspace. Une variable peut tre supprime avec la commande clear nomdevariable. La commande clear supprime TOUTES les variables du workspace.
Un calcul interminable peut tre arrt avec quitte la session

ut. who

(ou bien

whos),

ache toutes les variables dnies jusqu' prsent dans

CTL c.

Aprs une longue journe de travail, toutes les variables du

workspace dans le nomdefichier.mat


session

MATLAB.

MATLAB. La commande save permet de sauvegarder toutes les variables du chier matlab.mat (save nomdefichier permet de sauvegarder dans le chier ). La commande load permet de charger les variables lors de la prochaine

workspace

sont perdues si on

Les fonctions pour crer des matrices


Les fonctions suivantes font partie du

noyau MATLAB :

eye zeros ones diag triu tril rand hilb magic toeplitz
Par exemple, est une matrice, que

identit matrice de zros matrice d'uns cration, extraction de la diagonale matrice triangulaire suprieure matrice triangulaire infrieure matrice alatoire matrice de Hilbert carr magique voir

help toeplitz

zeros(m,n) produit une matrice de m n avec tous les lments nuls ! Si A alors zeros(size(A)) produit une matrice de zros avec les mmes dimensions

A. Si x est un vecteur, diag(x) est une matrice diagonale avec x dans la diagonale ; si A est une matrice carre, alors diag(A) est un vecteur avec les lments de la diagonale de A. Qu'est-ce que c'est diag(diag(A)) ? Essayez ! Les matrices peuvent tre construites partir de sous-matrices. Par exemple si A est une matrice de 3x3, alors B = [A, zeros(3,2) ; zeros(2,3), eye(2)], construit une certaine matrice
de 5x5. Essayez-la !

Introduction

MATLAB

La gestion des itrations sous

MATLAB.

Les commande de contrle des boucles d'itration, suivent une syntaxe assez semblable aux langages de programmation classique du style

C ou FORTRAN.

For.
Voici un exemple trivial d'une boucle

for pour gnrer un vecteur de dimension n :

x = [ ]; for i = 1:n x = [x,i]; end


Les commandes :

x = [ ]; for i = n:-1:1 x = [x,i]; end


gnrent le mme vecteur mais dans l'ordre inverse. noter que

x = [ ]

dnit une matrice

VIDE.

Les commandes :

for i = 1:m for j = 1:n H(i, j) = 1/(i+j-1); end end H


gnrent une matrice de Hilbert de

mn

lments.

While.
La forme gnrale d'une boucle

while relation

while est la suivante :

commandes
end

La squence de

commandes sera rpte jusqu' ce que la relation soit logiquement fausse.

Voici un exemple :

n = 0; a=10; while n < a n = n + 1; end n


Essayez-le !

If.
La forme gnrale d'une boucle

if est la suivante :
6 6

Introduction

MATLAB

if relation end

commandes
Comme pour les boucles

for, les commandes sont excutes si relation est vraie. Plusieurs

boucles peuvent tre concatnes :

if n<0 parite = 0; elseif rem(n,2) == 0 parite = 2; else parite = 1; end

Relations.
Les relations en

MATLABsont

< > <= >= == =

infrieur suprieur infrieur ou gal suprieur ou gal gal dirent.

ATTENTION ! Comme dans le langage C, ne pas confondre = avec ==.


Les oprateurs de relation peuvent tre utiliss conjointement avec les oprateurs logiques :

& |
fausse ou vraie. Essayez  et 

et ou non.

Appliqus aux scalaires, les oprateurs de relation sont 0 ou 1 selon que la relation soit

3 < 5, 3 > 5, 3 == 5, 3 == 3.

Appliqus aux matrices de mmes dimensions, la relation est une matrice de O et 1 selon que les lments correspondants vrient ou non la relation. Essayez 

a = rand(5), b = triu(a), a == b.

Une relation entre matrices est interprte par de la matrice de relation vaut 1. Les fonctions

if ou while comme vraie, si chaque lment

any
et

et

all

peuvent tre utilises pour rduire les relations matricielles sous

la forme de relation vectorielle, voire scalaire. Faire

help any

help all

pour plus d'information.

Introduction

MATLAB

Fonction Scalaires.
Certaines fonctions de

MATLABs'appliquent

essentiellement aux scalaires, mais elles agissent

lment lment lorsqu'elles sont appliques aux matrices. Ces fonctions sont :

sin asin exp abs round cos acos log(lognaturel) sqrt f loor tan atan rem sign ceil
I Fonctions Vectorielles.
Autres fonctions agissent sur une

MATLABagissent sur matrice m n(m 2)

des vecteurs (vecteurs ligne ou colonne), mais elles par colonne pour gnrer un vecteur ligne. Des op-

rations ligne par ligne peuvent tre eectues en utilisant la matrice transpose. Voici quelques unes de ces fonctions :

max sum median any min prod mean all sort std
Par exemple, le maximum d'une matrice peut tre trouv grce la commande

max(max(A));

Essayez-la !

Fonctions matricielles.
La puissance de

MATLABse eig chol svd inv lu qr hess schur expm sqrtm poly det size norm rank

trouve dans ces fonctions matricielles. Voila quelques unes de ces

fonctions : valeurs et vecteurs propres, factorisation de Cholesky, dcomposition en valeurs singulires, inverse factorisation LU, factorisation QR, forme de Hessenberg dcomposition de Schur matrice exponentielle matrice racine carre polynme caractristique dterminant taille norme rang

Les fonctions

eig(A),

ou simplement

MATLABpeuvent avoir une seule variable de retour ou plusieurs. Par exemple y = eig(A) produit un vecteur colonne qui contient les valeurs propres de la
8 8

Introduction

MATLAB

matrice propres

A. Par contre [U,D] = eig(A) produit une matrice U avec comme colonnes les vecteurs de A et une matrice diagonale D avec les valeurs propres comme diagonale principale.

Essayez !

Sous-matrices.
Les vecteurs et les sous-matrices d'une matrice principale peuvent tre utiliss dans des

traitements trs particuliers. Ce genre de manipulations permet l'utilisateur de ne pas utiliser des boucles

la gestion des sous-matrices et des vecteurs ! !.


Voyons des exemples. L'expression

for ou while qui sont en gnral trs lentes sous MATLAB. a vaut le coup de matriser
x=1 :5 ;
est une faon rapide et simple de dnir le vecteur

peut aussi construire des vecteurs rels avec

0.8, 1.0, 1.2],

ou bien des listes inverses

[1 2 3 4 5]. On 0.2 :0.2 :1.2 pour gnrer [0.2, 0.4, 0.6, comme 5 :-1 :1 pour gnrer [5 4 3 2 1].

Les commandes suivantes sont utilises pour construire une table de sinus :

x = [0.0:0.1:2.0]'; y = sin(x); [x y] sin


y

remarquer que la fonction partir du vecteur La notation

opre lment lment, et produit donc un vecteur

x.
peut tre utilise pour extraire une sous matrice d'une matrice. Par exemple, colonne qui contient les 4 premiers lments de la 3me colonne de la indiquent toute la ligne ou colonne d'une matrice :

A(1 :4,3) est le vecteur matrice A. Les : par eux mmes

simplement la troisime colonne de 2 et 4 de

A,

et

A(1 :4, :)

sont les 4 premires lignes de

A( :,3) A.

est tout

Des vecteurs d'entiers peuvent tre utiliss comme indices :

A( :,[2 4]) contient les colonnes

A.

Expliquer la commande avec la commande

Les colonnes 2 et 4 peuvent tre multiplis droite par une matrice

2x2 telle que [1 2 ;3 4] A( :,[2,4]) = A( :,[2,4])*[1 2 ;3 4] ; Essayez ! ! Devinette : si x est un vecteur n composantes, quel est le rsultat des commandes suivantes ?

A( :,[2 4 5]) = B( :,1 :3).

x = x(n:-1:1); y = fliplr(x); y = flipud(x');

Fichiers

.m
excuter une squence de commandes enregistres dans un chier. Ces chiers

MATLABpeut
sont appels

chiers .m parce qu'ils ont une extension .m. MATLABles reconnat automatiquement .m : les scripts et les fonctions.
9

grce cette extension et les excute immdiatement. Ces chiers sont des chiers ASCII qui peuvent tre dits avec votre diteur prfr. Il y a deux types de chiers

Introduction

MATLAB

Fichiers Script.
Un chier exemple

test.m,

script

contient une squence de commandes alors lorsque vous excuter la

MATLAB. Si commande test,

le chier s'appelle par toutes les commandes

contenues dans le chier sont excutes. Les variables d'un chier peuvent craser une variable de mme nom dans le Les chiers suivante :

script

workspace.

script

sont globales et

servent dnir des matrices de grande taille ou des commandes que

l'on rpte trs frquemment. Par exemple, on crit dans le chier

matA.m,

la commande

A = [

1 2 3 4 5 6 7 8 ]; MATLABon excute la commande matA alors la matrice A est dnie dans

Si dans une session le

Fichier de Fonctions.
sous-routines en (variables

workspace. Observer que l'on peut aussi utiliser la fonction load pour raliser cette tche. Un script peut utiliser d'autres scripts (lui mme pouvant tre rcursivement excut).
MATLABest l'homologue des fonctions en langage C ou les FORTRAN. Vous pouvez crer vos propres fonctions MATLABparfaitement help global).

Un chier d'une fonction sous

adaptes votre problme. Les variables dnie dans une fonctions sont des variables locales

automatiques du C) donc elles disparaissent ds que la fonction ni. Elles peuvent


randint.m
(

aussi tre dclares comme globales (voir

Voici un exemple simple d'une fonction contenue dans le chier

TION ! : le nom du chier doit tre le mme que celui de la fonction) :

ATTEN-

function a = randint(m,n) %RANDINT G{\'e}n{\`e}re une matrice d'entiers al{\'e}atoires entre 0 et 9. % La fonction randint(m,n) rend une matrice de mxn. a = floor(10*rand(m,n));
Voici une version plus gnrale de cette fonction :

function %RANDINT % % % %

a = randint(m,n,a,b) G{\'e}n{\`e}re une matrice d'entiers al{\'e}atoires. La fonction randint(m,n) rend une matrice de mxn avec des valeurs entre 0 et 9. La fonction randint(m,n,a,b) rend une matrice de mxn avec des valeurs entre a et b.

if nargin < 3, a = 0; b = 9; end a = floor((b-a+1)*rand(m,n)) + a;

10

10

Introduction

MATLAB

La premire ligne dclare le nom de la fonction ainsi que les variables d'entre et de sortie. Sans cette ligne le chier devient un

z = randint(4,5). La paramtres m et n respectivement).


commande

script ! !

Cette fonction peut tre utilise avec la

matrice alatoire sera une matrice de

4x5

(valeurs des

La fonction rend le rsultat dans la matrice

z.

Puisque

les variables de la fonction sont locales elles peuvent avoir n'importe quel nom (variables muettes) et ne modient pas la valeurs d'une variable du Remarquer que la commande

nargin

(de l'anglais

workspace avec le mme nom. number of arguments in input) permet

l'utilisateur de passer un nombre variable de paramtres la fonction (fonctionnalit semblable aux  . . . du langage

C). Dans cet exemple si on oublie les paramtres a et b,

les valeurs par dfaut 0 et 9 sont utilises. Une fonction peut avoir plusieurs variable de sortie. Par exemple :

function [mean, stdev] = stat(x) % STAT Calcul de la moyenne et de l'{\'e}cart type. % Pour un vecteur x, stat(x) rend la moyenne de x; % [mean, stdev] = stat(x) rend la moyenne et l'{\'e}cart type. % Pour une matrice x, stat(x) agit par colonnes. [m n] = size(x); if m == 1 m = n; % tient en compte le cas d'un vecteur ligne end mean = sum(x)/m; stdev = sqrt(sum(x.*x)/m - mean.*mean);
Une fois crite dans un chier

stat.m,

la commande

la moyenne et l'cart type de x et rend ces valeurs exemple la commande

MATLAB[xm, xd] = stat(x), calcule dans les variables xm et xd. Notez que

c'est possible de prendre une seule variable de retour, mme si la fonction en rend 2. Par

xm = stat(x)

(les crochets [ et ] ne sont pas ncessaires dans ce

cas), calcule seulement la moyenne de Le symbole

x.

commentaire servent pour dcrire la fonction et elles sont aches par la commande pour la description de la fonction. Quelques fonctions

nomdefonction. Une programmation propre oblige l'inclusion de ces lignes de commentaires


MATLABsont
contenues dans le noyau du programme et crites en code

% indique que le reste de cette ligne est un commentaire. Les premires lignes de help

machine pour acclrer leur excution. C'est le cas, par exemple de la fonction forme de Fourier Rapide) ou dans des chiers s'appelle une

bo te outils (toolbox).

.m. Un ensemble de fonctions qui sont en relation avec un sujet spcique

filt (fonction de ltrage). D'autres fonction

fft (Trans-

sont contenues

Texte, messages d'erreur et entre sous

MATLAB.

Une cha ne de texte peut tre dnie en enfermant la cha ne par des guillemets simples. Voici un exemple :

s = 'Message syst{\`e}me';

11

11

Introduction

MATLAB

La variable caractres Par exemple :

s contient maintenant la cha ne de caractres Message systme. Les cha nes de peuvent tre aches avec la fonction disp au lieu d'tre dnies par une variable.

disp('Patientez SVP......');

ache le message sur l'cran. Les messages d'erreur sont mieux achs avec la fonction fonction ache le message et arrte l'excution du programme. Dans une fonction, l'utilisateur peut entrer une valeur d'un paramtre grce la fonction

error.

Dans un chier

.m

cette

input.

Par exemple :

iter = input('Entrez le nombre d'it{\'e}rations :

'); Entre associe la valeur

ache le message et attend une valeur partir du clavier. La touche entre la variable

iter

et continue l'excution du programme.

Session

MATLAB.
diary
au dbut d'une session

MATLABpeuvent tre enregistres dans un chier. pour MATLAB. Toutes les commandes entres dans cette session seront automatiquement sauvegardes dans le chier diary. Ce chier peut tre utilis comme script dans une prochaine session MATLAB.
Toutes les commandes d'une session cela il sut de faire

Prsentation des rsultats sous

MATLAB.
et

MATLABpeut

reprsenter des graphiques d'une faon simple et puissante. Les fonctions de

reprsentation plus employes sont

plot, plot3, mesh,

surf.

Voici une introduction rapide

aux commandes de reprsentation graphique.

Graphiques 2D
La commande

plot

gnre des graphiques

mme dimension alors en ordonnes et celles

x y linaires ; si x et y sont plot(x,y) ouvre une fentre graphique et dessine de x en abscisses. Voici un exemple simple :

des vecteurs de les valeurs de

x = -4:.01:4; y = sin(x); plot(x,y)


On peut avoir plusieurs gures au mme temps. Par exemple, si l'on a dj une gure dans une fentre, on peut ouvrir une deuxime fentre pour une nouvelle gure avec la commande

figure.

Ainsi le gures sont numrotes en ordre croissant. Pour revenir sur

une gure quelconque il sut de faire numro de la gure active.

figure(numrodefigure).

Le commande

gcf

rend le

12

12

Introduction

MATLAB

Les gures peuvent avoir des titres, ainsi de mme pour les axes coordonns. On peut galement plac un texte dans n'importe quelle position d'une gure. Voici la liste des commandes

MATLABles
title

plus utilises pour la gestion des gures : Titre de la gure, titre de l'axe des abscisses titre de l'axe des ordonnes insre du texte grce la souris insre du texte certaines coordonnes

xlabel ylabel gtext text La commande

grid

dessine une grille dans la gure actuelle.

Les axes sont calculs automatiquement. La commande guration automatique. Voir

help axis.

axis

permet d'viter cette con-

Il y a deux faons de reprsenter deux courbes sur la mme gure. Voici un exemple :

x=0:.01:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(4*x); plot(x,y1,x,y2,x,y3)


La deuxime faon consiste utiliser la commande la mme fentre. La commande

hold.

La commande

hold on,

retient

le contenu de la fentre graphique de faon pouvoir superposer une nouvelle courbe sur

hold off

relche la fentre.

On peut changer aussi les types des lignes et des points par dfaut. En voici un exemple :

x=0:.01:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(4*x); plot(x,y1,'--',x,y2,':',x,y3,'+')


Essayez cet exemple pour pouvoir apprcier les dirences. Les types disponibles de marqueurs pour les gures sont les suivants : Types de lignes : (a) marqueur solide (-) (b) tiret

 : -.

(c) point

(d) pointill

Types de marqueurs : (a) point (b) plus

. * o
13 13

(c) toile (d) cercle

Introduction

MATLAB

(e) x

On peut aussi changer les couleurs des lignes et des marqueurs. Les couleurs disponibles sont :  jaune  ciel  vert  

y r

 magenta

 rouge  bleu

g b blanc w noir k

Par exemple,

La commande

plot(x,y,'r') dessine des lignes rouges avec des tirets. subplot peut tre utilise pour diviser l'cran en plusieurs morceaux. Voir help subplot. Autres fonctions pour la reprsentation des gures sont polar, bar, hist, quiver, compass, feather, rose, stairs, fill. Utilisez la fonction help pour obtenir une description de

ces commandes.

Impression.
La gure ache peut tre imprime grce la commande Voir

print. La commande printopt

ache la conguration par dfaut de l'imprimante laquelle est ratache votre ordinateur.

Figures 3-D.
La commande mande par les

help printopt. plot


en deux dimensions a une version 3D appele

plot3

qui produit des

courbes en 3 dimensions. Si

x, y ,

et

sont trois vecteurs de la mme taille, alors la com3D en perspective avec une courbe qui passe

plot3(x,y,z) produit une gure en points x, y , et z . Voici un exemple :

t=.01:.01:20*pi; x=cos(t); y=sin(t); z=t.*t.*t; plot3(x,y,z)


Essayez cet exemple.

14

14

Introduction

MATLAB

Rfrence des commandes

Managing Commands and Functions


help what type lookfor which demo path cedit version whatsnew info why help facility list M-les on disk list named M-le keywork search through the help entries locate functions and les run demonstrations control MATLAB's search path set parameters for command line editing and recall display MATLAB version you are running display toolbox README les info about MATLAB and The MathWorks receive ippant answer

MATLAB

Managing Variables and the Workspace


who whos save load clear pack size length disp list current variables list current variables, long form save workspace variables to disk retrieve variables from disk clear variables and functions from memory consolidate workspace memory size of matrix length of vector display matrix or text

Working with Files and the Operating System


cd pwd dir, ls delete getenv ! unix diary change current working directory show current working directory directory listing delete le get environment variable execute operating system command execute operating system command ; return result save text of MATLAB session

Controlling the Command Window


clc home format echo more clear command window send cursor hometo top of screen set output format echo commands inside script commands control paged output in command window

15

15

Introduction

MATLAB

Starting and Quitting from MATLAB


quit startup matlabrc terminate MATLAB M-le executed when MATLAB is started master startup M-le

Matrix Operators - Array Operators


+ addition subtraction multiplication power / right division left division conjugate transpose transpose Kronecker tensor product + addition subtraction multiplication power right division left division

.
. ./ .\

\
' .' kron

Relational and Logical Operators


< <= > >=
== less than less than or equal greater than greater than or equal equal not equal & and or not exclusive or

|
xor

Special Characters
= [ ] ( ) . .. ... , ; % : ! assignment statement used to form vectors and matrices ; enclose multiple function output variables arithmetic expression precedence ; enclose function input variables decimal point parent directory continue statement to next line separate subscripts, function arguments, statements end rows, suppress printing comments subscripting, vector generation execute operating system command

16

16

Introduction

MATLAB

Special Variables and Constraints


ans eps realmax reammin pi i, j inf NaN ops nargin nargout computer answer when expression not assigned oating point precision largest oating point number smallest positive oating point number

imaginary unit innity Not-a-Number oating point operation count number of function input arguments number of function output arguments computer type

Time and Date


date clock etime tic, toc cputime current date wall clock elapsed time function stopwatch timer functions elapsed CPU time

Special Matrices
zeros ones eye diag toeplitz magic compan linspace logspace meshgrid rand randn hilb invhilb vander pascal hadamard hankel rosser wilkinson gallery matrix of zeros matrix of ones identity diagonal Toeplitz magic square companion linearly spaced vectors logarithmically spaced vectors array for 3-D plots uniformly distributed random numbers normally distributed randon numbers Hilbert inverse Hilbert (exact) Vandermonde Pascal Hadamard Hankel symmetric eigenvalue test matrix Wilkinson's eigenvalue test matrix two small test matrices

17

17

Introduction

MATLAB

Matrix Manipulation
diag rot90 iplr ipud reshape tril triu .' : create or extract diagonals rotate matrix 90 degrees ip matrix left-to-right ip matrix up-to-down change size lower triangular part upper triangular part transpose convert matrix to single column ;

A( :)

Logical Functions
exist any all nd isnan isinf nite isieee isempty issparse isstr strcmp check if variables or functions exist true if any element of vector is true true if all elements of vector are true nd indices of non-zero elements true for NaNs true for innite elements true for nite elements true for IEEE oating point arithmetic true for empty matrix true for sparse matrix true for text string compare string variables

Control Flow
if else elseif end for while break return error conditionally execute statements

if if terminate if, for, while


used with used with terminate execution of

repeat statements for a specic number of times repeat statments while condition is true

for or while loops

return to invoking function display message and abort function

18

18

Introduction

MATLAB

Programming
input keyboard menu pause function eval feval global nargchk prompt for user input invoke keyboard as if it were a script le generate menu of choices for user input wait for user response dene function execute string with MATLAB expression evaluate function specied by string dene global variables validate number of input arguments

Text and Strings


string abs blanks eval num2str int2str str2num isstr strcmp upper lower hex2num hex2dec dec2hex about character strings in MATLAB convert string to numeric values a string of blanks evaluate string with MATLAB expression convert number to string convert integer to string convert string to number true for string variables compare string variables convert string to uppercase convert string to lowercase convert hex string to oating point number convert hex string to decimal integer convert decimal integer to hex string

Debugging
dbstop dbclear dbcont dbdown dbstack dbstatus dbstep dbtype dbup dbdown dbquit set breakpoint remove breakpoint remove execution change local workspace context list who called whom list all breakpoints execute one or more lines list M-le with line numbers change local workspace context opposite of

dbup

quit debug mode

19

19

Introduction

MATLAB

Sound Processing Functions


saxis sound auread auwrite lin2mu mu2lin sound axis scaling convert vector to sound Read Sun audio le Write Sun audio le linear to mu-law conversion mu-law to linear conversion

Elementary Math Functions


abs angle sqrt real imag conj gcd lcm round x oor ceil sign rem exp log log10 absolute value or complex magnitude phase angle square root real part imaginary part complex conjugate greatest common divisor least common multiple round to nearest integer round toward zero round toward round toward

signum function remainder exponential base e natural logarithm log base 10

Trigonometric Functions
sin, asin, sinh, asinh cos, acos, cosh, acosh tan, atan, tanh, atanh cot, acot, coth, acoth sec, asec, sech, asech csc, acsc, csch, acsch sine, arcsine, hyp sine, hyp arcsine cosine, arccosine, hyp cosine, hyp arccosine tangent, arctangent, hyp tangent, hyp arctangent cotangent, arccotangent, hyp cotan., hyp arccotan. secant, arcsecant, hyp secant, hyp arcsecant cosecant, arccosecant, hyp cosecant, hyp arccosecant

20

20

Introduction

MATLAB

Special Functions
bessel beta gamma rat rats erf erf / inv ellipke ellipj expint log2 pow2 bessel function beta function gamma function rational approximation rational output error function inverse error function complete elliptic integral Jacobian elliptic integral exponential integral dissect oating point numbers scale oating point numbers

Matrix Decompositions and Factorizations


inv lu rref chol qr nnls lscov null orth eig hess schur cdf2rdf rsf2csf balance qz polyeig svd pinv inverse factors from Gaussian elimination reduced row echelon form Cholesky factorization orthogonal-triangular decomposition nonnegative least squares least squares in presence of know covariance null space orthogonalization eigenvalues and eigenvectors Hessenberg form Schur decomposition complex diagonal form to real block diagonal form real block diagonal form to complex diagonal form diagonal scaling for eigenvalue accuracy generalized eigenvalues polynomial eigenvalue solver singular value decomposition pseudoinverse

Matrix Conditioning
cond rcond condest norm normest rank condition number in 2-norm LINPACK reciprocal condition number estimator Hager/Higham condition number estimator 1-norm,2-norm,F-norm,-norm 2-norm estimator rank

21

21

Introduction

MATLAB

Elementary Matrix Functions


expm expm1 expm2 expm3 logm sqrtm funm poly det trace matrix exponential M-le implementation of

expm

matrix exponential via Taylor series matrix exponential via eigenvalues and eigenvectors matrix logarithm matrix square root evaluate general matrix function characteristic polynomial determinant trace

Polynomials
poly roots roots1 polyval polyvalm conv deconv residue polyt polyder construct polynomial with specied roots polynomial rootscompanion matrix method polynomial rootsLaguerre's method evaluate polynomial evaluate polynomial with matrix argument multiply polynomials divide polynomials partial-fraction expansion (residues) t polynomial to data dierentiate polynomial

Column-wise Data Analysis


max min mean median std sort sum prod cumsum cumprod hist largest component smallest component average or mean value median value standard deviation sort in ascending order sum of elements product of elements cumulative sum of elements cumulative product of elements histogram

22

22

Introduction

MATLAB

Signal Processing
abs angle conv deconv corrcoef cov lter lter2 cplxpair unwrap nextpow2 t t2 it it2 tshift complex magnitude phase angle convolution and polynomial multiplication deconvolution and polynomial division correlation coecients covariance matrix one-dimensional digital lter two-dimensional digital lter sort numbers into complex pairs remove phase angle jumps across 360 next higher power of 2 radix-2 fast Fourier transform two-dimensional FFT inverse fast Fourier transform inverse 2-D FFT zero-th lag to center of spectrum

boundaries

Finite Dierences and Data Interpolation


di gradient del2 subspace spline interp1 interp2 interpft griddata approximate derivatives approximate gradient ve point discrete Laplacian angle between two subspaces cubic spline interpolation 1-D data interpolation 2-D data interpolation 1-D data interpolation via FFT method data gridding

Numerical Integration
quad quad8 trapz adaptive 2-panel Simpson's Rule adaptive 8-panel Newton-Cotes Rule trapezoidal method

Dierential Equation Solution


ode23 ode23p ode45 2nd/3rd order Runge-Kutta method solve via

ode23, displaying plot

4th/5th order Runge-Kutta-Fehlberg method

23

23

Introduction

MATLAB

Nonlinear Equations and Optimization


fmin fmins fsolve minimize function of one variable minimize function of several variables solution to a system of nonlinear equations (nd zeros of a function of several variables) fzero fplot nd zero of function of one variable plot graph of a function

Two Dimensional Graphs


plot loglog semilogx semilogy ll polar bar stairs errorbar hist rose compass feather fplot linear plot log-log scale plot semilog scale plot semilog scale plot draw lled 2-D polygons polar coordinate plot bar graph stairstep plot error bar plot histogram plot angle histogram plot compass plot feather plot plot function

Graph Annotation
title xlabel ylabel zlabel grid text gtext ginput graph title x-axis label y-axis label z-axis label for 3-D plots grid lines text annotation mouse placement of text graphical input from mouse

24

24

Introduction

MATLAB

Figure Window/Axis Creation and Control


gure gcf clf close hold ishold subplot axes gca axis caxis create gure (graph window) get handle to current gure clear current gure close gure hold current graph return hold status create axes in tiled positions create axes in arbitrary positions get handle to to current axes control axis scaling and appearance control pseudocolor axis scaling

Graph Hardcopy and Storage


print printopt orient print graph or save graph to le congure local printer defaults set paper orientation

Three Dimensional Graphs


mesh meshc meshz surf surfc surf / l plot3 ll3 contour contour3 clabel contourc pcolor quiver image waterfall slice 3-D mesh surface combination mesh/contour plot 3-D mesh with zero plane 3-D shaded surface combination surface/contour plot 3-D shaded surface with lighting plot lines and points in 3-D space draw lled 3-D polygons in 3-D space contour plot 3-D contour plot contour plot elevation labels contour plot computation (used by pseudocolor (checkerboard) plot quiver plot display image waterfall plot volumetric visualization plot

contour)

25

25

Introduction

MATLAB

3-D Graph Appearance


view viewmtx hidden shading axis caxis specular diuse surfnorm colormap brighten spinmap rgbplot hsv2rgb rgb2hsv 3-D graph viewpoint specication view transformation matrices mesh hidden line removal mode color shading mode axis scaling and apearance pseudocolor axis scaling specular reectance diuse reectance surface normals color lookup table (see below) brighten or darken color map spin color map plot colormap hsv to rgb color map conversion rgb to hsv color map conversion

Color Maps
hsv jet gray hot cool bone copper pink ag hue-saturation-value (default) variant of

hsv

linear gray-scale black-red-yellow-white shades of cyan and magenta gray-scale with tinge of blue linear copper tone pastel shades of pink alternating red, white, blue, and black

3-D Objects
sphere cylinder peaks generate sphere generate cylinder generate demo surface

Movies and Animation


moviein getframe movie initialize movie frame memory get movie frame play recorded movie frames

26

26

Introduction

MATLAB

Handle Graphics Objects


gure axes line text patch surface image uicontrol uimenu create gure window create axes create line create text create patch create surface create image create user interface control create user interface menu

Handle Graphics Operations


set get reset delete drawnow set object properties get object properties reset object properties delete object ush pending graphics events

27

27

Introduction

MATLAB

Sparse Matrix Functions


spdiags speye sprandn spones sprandsym spfun sparse matrix formed from diagonals sparse identity matrix sparse random matrix replace nonzero entries with ones sparse symmetric random matrix apply function to nonzero entries

sparse full nd spconvert

create sparse matrix ; convert full matrix to sparse convert sparse matrix to full matrix nd indices of nonzero entries convert from sparse matrix external format

issparse nnz nonzeros nzmax spalloc

true if matrix is sparse number of nonzero entries nonzero entries amount of storage allocated for nonzero entries allocate memory for nonzero entries

spy gplot

visualize sparsity structure plot graph, as in graph theory

colmmd colperm dmperm randperm symmmd symrcm

column minimum degree order columns based on nonzero count Dulmage-Mendelsohn decomposition random permutation vector symmetric minimum degree reverse Cuthill-McKee ordering

condest normest sprank

estimate 1-norm condition estimate 2-norm structural rank

spaugment spparms symbfact sparsefun

form least squares augmented system set parameters for sparse matrix routines symbolic factorization analysis sparse auxillary functions and parameters

28

28

Introduction

MATLAB

Low-level I/O Functions


fclose fopen fread fwrite fgetl fgets fprintf fscanf sprintf sscanf ferror frewind fseek ftell close le open le read binary data from le write binary data to le readline from le, discard newline character readline from le, keep newline character write formatted data to le read formatted data from le write formatted data to string read string under format control inquire le I/O error status rewind le set le position indicator get le position indicator

29

29