Documente Academic
Documente Profesional
Documente Cultură
C
t
he
Herms
lanc
Introduction a Matlab
e TNS
sd
B
, extra
ab arbit it
h
Exemple 1
Le resultat
a=2*log10(5)
Ligne de commande
a =
Rsultat
1.3979
Invite
Figure 1
Les commandes peuvent ^etre regroupees en des chiers texte que l'on designe
par programmes Matlab. L'utilisateur leur aecte un nom qui peut ^etre appele a
1 Les variables
Le langage Matlab est dedie au calcul matriciel et a ete optimise dans ce but.
Les variables manipulees sont en priorite des matrices a elements reels ou complexes et qu'il est preferable d'eviter l'usage de boucles de calcul (for ...
end). Un scalaire est un matrice 1 1, un vecteur colonne une matrice comportant une seule colonne et un vecteur ligne une seule ligne.
Dans la suite, la notation (` c) indique que la variable consideree possede
` lignes et c colonnes.
Dfinition de la matrice a
a =
1
4
2
5
3
6
Figure 2
Rsultat
(2 lignes, 3 colonnes)
Les crochets permettent d'aecter des valeurs aux elements d'une matrice.
L'espace (on peut aussi utiliser la virgule) est un separateur qui fait passer a
la colonne suivante, et le point virgule a la ligne suivante. Les elements sont
Introduction a Matlab 19
Exemple 3
a =
0 1 2 3 4 5 6 7 8 9 10
Exemple 4
a =
0 4 8
Exemple 5
>>a=[1 2 3
a =
1
4
>>a=[a a]
a =
1
4
>>a=[1 2 3
>>a=[a;a]
a =
1
4
1
4
; 4 5 6]
2
5
3
6
2
3
5
6
; 4 5 6];
2
5
2
5
1
4
2
5
3
6
3
6
3
6
Remarques :
2 Operations et fonctions
r^ole central en traitement du signal. Il sera aborde plus precisement dans le chapitre 11.
Introduction a Matlab 21
L'operation ^ eectue l'exponentiation. L'exposant peut ^etre un scalaire
fractionnaire, positif ou negatif, ou une matrice.
L'apostrophe ' designe le transpose-conjugue ou transconjugue. On rappelle que la matrice A (N N ) est la transpose-conjugue de B, et on
note A = BH , si [aij ] = [bji] pour 1 i; j N .
Taper les commandes:
3];
, extra
ab arbit it
h
Matl
tC
e
h
0
9
0
1.7321
0
1
2
3
0
2
4
6
e TNS
sd
B
>>a=[2 0;1
>>a^2
ans =
4
5
>>a^.5
ans =
1.4142
0.3178
>>a=(0:3);
>>b=(0:3);
>>c=b*a'
c =
14
>>d=b'*a
d =
0
0
0
0
Herms
lanc
Exemple 8
0
3
6
9
Les operations \.", \./" et \.^" agissent terme a terme. Ainsi, si A = [aij ] et
B = [bij ] sont deux matrices de m^emes dimensions, A .* B donne la matrice
[aij bij ].
Exemple 9
pa .
i
2.0000
4.0000
3.0000
4.0000
3.0000
4.0000
1 et
Introduction a Matlab 23
temps est un vecteur ligne (1 1024) et donc temps'*fq est une matrice
(1024 3). Vous pouvez le verier en tapant la commande whos :
>>whos
Name
T
fq
sig
temps
Size
1 by
1 by
1024 by
1 by
1
3
3
1024
Elements
1
3
3072
1024
Bytes
8
24
49152
8192
Density
Full
Full
Full
Full
Complex
No
No
Yes
No
que des 0.
Matl
C
t
he
Herms
lanc
c(:)=a;
e TNS
sd
B
Ak +
A
eA = I + + +
1!
k!
et est obtenue a l'aide de la fonction expm(A).
Il existe une fonction plus generale funm qui calcule une fonction quelconque
de matrice. Faire help funm.
Introduction a Matlab 25
roots(a).
Exemple 16
1.0000
Taper :
-1.0000
, extra
ab arbit it
h
e TNS
sd
B
Matl
C
t
he
Le
Taper :
Herms
lanc
Exemple 15
Exemple 17 Taper :
>>x=1;
>>if x==0,
A=[1 2];
else
A=[2 1];
end
>>A
A =
2
1
Exemple 18 Taper :
>>A=[1 .5; .5 .25];
>>M=eye(2,2); % Matrice unite
>>for k=1:5
M = M * A;
% Calcul des puissances successives de A
end
Introduction a Matlab 27
clear;
z=exp(2*pi*j*[0:100]/100);
figure(1); plot(z); axis('square');
figure(2); plot(z); axis([-1.2 1.2 -1.2 1.2]);
figure(3); plot(z); axis;
X0 = [0 0] et E =
1;3628 0;7566
0;7566 0;5166
>>X0=[0 0];
>>E=[1.3628 .7566;.7566 .5166];
>>c=1;
>>ellipse(X0, E,c)
c=1
0
X0
Matl
tC
he
e TNS
sd
B
, extra
ab arbit it
h 10
c=5
4
2
Figure 3
Herms
lanc
2 Sauvegardez cette fonction sous le nom ellipse.m. Elle sera reutilisee dans la suite.
Introduction a Matlab 29
Exemple 21
Taper :
fe=10;
valfe=num2str(fe)
La commande sprintf('fe=%g',fe) peut aussi ^etre utilisee pour construire une cha^ne de caracteres. Elle est d'ailleurs utilisee par num2str. Ainsi, fe=
suivie de la cha^ne de caracteres obtenue par conversion de la valeur numerique
fe, en accord avec le format specie par %g. Par exemple %4g convertit la valeur
donnee avec 4 chires apres le point decimal. Pour plus d'informations il est
recommande de se reporter a la description de la fonction printf du langage
C. Comme l'indique l'exemple ci-apres, la commande sprintf('fe=%g',fe)
permet l'utilisation de plusieurs arguments.
Exemple 22
Taper :
fq=[10 20];
valf=sprintf('F1 = %g, F2 = %g',fq(1),fq(2))
5 Les entrees-sorties
Matlab ore la possibilite d'eectuer des operations d'entree-sortie a partir
du clavier, sur l'ecran (comme on l'a vu dans le paragraphe precedent avec
sprintf) ou sur des chiers. Les principales fonctions sont enumerees ci-apres :
input, ginput, ...
load, save pour charger et sauvegarder tout ou partie des variables dans
un chier avec un format propre a Matlab. Les chiers ont, par defaut,
l'extension .mat,
fopen, fread, fwrite pour les entrees-sorties avec formattage sur des
chiers.
Exemple 23 Taper :
clear; x=[1:100];
fid=fopen('essai.dat','w');
fwrite(fid,x,'short');
% Ecriture
fclose(fid)
%==========
fid=fopen('essai.dat','r');
y=fread(fid,'short')
% Relecture
fclose(fid);
Ce programme cree le chier essai.dat d'entiers 16 bits, puis relit son contenu
dans la variable y.