Académique Documents
Professionnel Documents
Culture Documents
MATLAB à la carte
Module 2:
Programmation de base
Eric ANTERRIEU
Observatoire Midi-Pyrénées
Laboratoire d’Astrophysique de Toulouse-Tarbes
CNRS — UMR5572
Eric.Anterrieu@ast.obs-mip.fr
MATLAB à la carte
1
Matlab à la carte 02/09/2008
MATLAB à la carte
Module 2:
Programmation de base
Eric ANTERRIEU
Observatoire Midi-Pyrénées
Laboratoire d’Astrophysique de Toulouse-Tarbes
CNRS — UMR5572
Eric.Anterrieu@ast.obs-mip.fr
MATLAB à la carte
1
Matlab à la carte 02/09/2008
2
Matlab à la carte 02/09/2008
2
Matlab à la carte 02/09/2008
3
Matlab à la carte 02/09/2008
3
Matlab à la carte 02/09/2008
4
Matlab à la carte 02/09/2008
4
Matlab à la carte 02/09/2008
5
Matlab à la carte 02/09/2008
5
Matlab à la carte 02/09/2008
6
Matlab à la carte 02/09/2008
6
Matlab à la carte 02/09/2008
7
Matlab à la carte 02/09/2008
7
Matlab à la carte 02/09/2008
MATLAB
» lookfor sin
SIN Sine.
ASIN Inverse sine.
SINH Hyperbolic sine.sinc.m
function
ASINH Inverse hyperbolic Y=sinc(X)
sine.
SINC Cardinal sine. %SINC Cardinal sine.
» help sinc % SINC(X) is the sinc of the elements of X:
SINC Cardinal sine. % Y = 1 if X == 0
% of the
SINC(X) is the sinc = sin(pi*X)/(pi*X)
elements of X: otherwise
Y = 1 % if X == 0
% otherwise
= sin(pi*X)/(pi*X) See also: SIN.
See also: SIN. % Written by: E. ANTERRIEU
»
Y=ones(size(X));
k=find(X);
Y(k)=sin(pi*X(k))./(pi*X(k));
Structures de contrôle
8
Matlab à la carte 02/09/2008
MATLAB
» lookfor sin
SIN Sine.
ASIN Inverse sine.
SINH Hyperbolic sine.sinc.m
function
ASINH Inverse hyperbolic Y=sinc(X)
sine.
SINC Cardinal sine. %SINC Cardinal sine.
» help sinc % SINC(X) is the sinc of the elements of X:
SINC Cardinal sine. % Y = 1 if X == 0
% of the
SINC(X) is the sinc = sin(pi*X)/(pi*X)
elements of X: otherwise
Y = 1 % if X == 0
% otherwise
= sin(pi*X)/(pi*X) See also: SIN.
See also: SIN. % Written by: E. ANTERRIEU
»
Y=ones(size(X));
k=find(X);
Y(k)=sin(pi*X(k))./(pi*X(k));
Structures de contrôle
8
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction if
L’instruction if évalue une expression logique et
exécute un groupe d’instructions lorsque le résultat de
l’évaluation est vrai.
Les mots clefs optionnels elseif et else
permettent d’exécuter d’autres groupe d’instructions.
Le mot clef end termine toujours le dernier groupe
d’instructions.
Structures de contrôle if
MATLAB
» exemple
x = 10
y = 5
exemple.m
x =
5 x = input('x = ');
y = y = input('y = ');
10 %
» if (x > y)
tmp = y;
y = x;
x = tmp;
end
%
disp('x = '); disp(x);
disp('y = '); disp(y);
9
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction if
L’instruction if évalue une expression logique et
exécute un groupe d’instructions lorsque le résultat de
l’évaluation est vrai.
Les mots clefs optionnels elseif et else
permettent d’exécuter d’autres groupe d’instructions.
Le mot clef end termine toujours le dernier groupe
d’instructions.
Structures de contrôle if
MATLAB
» exemple
x = 10
y = 5
exemple.m
x =
5 x = input('x = ');
y = y = input('y = ');
10 %
» if (x > y)
tmp = y;
y = x;
x = tmp;
end
%
disp('x = '); disp(x);
disp('y = '); disp(y);
9
Matlab à la carte 02/09/2008
Structures de contrôle if
MATLAB
» exemple
x = 10
y = 5
exemple.m
x =
5 x = input('x = ');
y = y = input('y = ');
10 %
» if (x > y), tmp = y; y = x; x = tmp; end
%
disp('x = '); disp(x);
disp('y = '); disp(y);
Structures de contrôle if
MATLAB
» exemple
x = 9
y =
exemple.m
3
» x = input('x = ');
» exemple %
x = -9 if (x >= 0)
y = y = sqrt(x);
NaN else
» y = NaN;
end
%
disp('y = '); disp(y);
10
Matlab à la carte 02/09/2008
Structures de contrôle if
MATLAB
» exemple
x = 10
y = 5
exemple.m
x =
5 x = input('x = ');
y = y = input('y = ');
10 %
» if (x > y), tmp = y; y = x; x = tmp; end
%
disp('x = '); disp(x);
disp('y = '); disp(y);
Structures de contrôle if
MATLAB
» exemple
x = 9
y =
exemple.m
3
» x = input('x = ');
» exemple %
x = -9 if (x >= 0)
y = y = sqrt(x);
NaN else
» y = NaN;
end
%
disp('y = '); disp(y);
10
Matlab à la carte 02/09/2008
Structures de contrôle if
MATLAB
» exemple
x = 10
y =
exemple.m
2.3026
» x = input('x = ');
» exemple %
x = 0 if (x > 0)
y = y = log(x);
-Inf elseif (x < 0)
» y = NaN;
» exemple else
x = -10 y = -Inf;
y = end
NaN %
» disp('y = '); disp(y);
Structures de contrôle
L’instruction switch
L’instruction switch exécute conditionnellement des
groupes d’instructions en se basant sur la valeur d’une
variable ou d’une expression.
Les mots clefs case et otherwise délimitent les
groupes d’instructions, seul le premier groupe qui
satisfait la condition est exécuté.
L’instruction switch doit toujours se terminer par le
mot clef end.
11
Matlab à la carte 02/09/2008
Structures de contrôle if
MATLAB
» exemple
x = 10
y =
exemple.m
2.3026
» x = input('x = ');
» exemple %
x = 0 if (x > 0)
y = y = log(x);
-Inf elseif (x < 0)
» y = NaN;
» exemple else
x = -10 y = -Inf;
y = end
NaN %
» disp('y = '); disp(y);
Structures de contrôle
L’instruction switch
L’instruction switch exécute conditionnellement des
groupes d’instructions en se basant sur la valeur d’une
variable ou d’une expression.
Les mots clefs case et otherwise délimitent les
groupes d’instructions, seul le premier groupe qui
satisfait la condition est exécuté.
L’instruction switch doit toujours se terminer par le
mot clef end.
11
Matlab à la carte 02/09/2008
MATLAB
» exemple
n = 1
x =
exemple.m
-3 0 4
y = x = [-3 0 4];
7 n = input('n = ');
» %
» exemple switch n
n = 2 case 1
x = y = sum(abs(x));
-3 0 4 case 2
y = y = sqrt(x*x');
5 case Inf
» y = max(abs(x));
» exemple otherwise
n = Inf error('n must be 1, 2 or Inf.');
x = end
-3 0 4 %
y = disp('x = '); disp(x);
4 disp('y = '); disp(y);
»
» exemple
n = 0
??? Error using exemple
n must be 1, 2 or Inf.
»
MATLAB
» exemple
x = 2
y =
exemple.m
0.5
» x = input('x = ');
» exemple %
x = 0 switch x
y = case 0
Inf y = Inf;
» case {Inf,-Inf}
» exemple y = 0;
x = Inf otherwise
y = y = 1/x;
0 end
» %
» exemple disp('y = '); disp(y);
x = -Inf
y =
0
»
12
Matlab à la carte 02/09/2008
MATLAB
» exemple
n = 1
x =
exemple.m
-3 0 4
y = x = [-3 0 4];
7 n = input('n = ');
» %
» exemple switch n
n = 2 case 1
x = y = sum(abs(x));
-3 0 4 case 2
y = y = sqrt(x*x');
5 case Inf
» y = max(abs(x));
» exemple otherwise
n = Inf error('n must be 1, 2 or Inf.');
x = end
-3 0 4 %
y = disp('x = '); disp(x);
4 disp('y = '); disp(y);
»
» exemple
n = 0
??? Error using exemple
n must be 1, 2 or Inf.
»
MATLAB
» exemple
x = 2
y =
exemple.m
0.5
» x = input('x = ');
» exemple %
x = 0 switch x
y = case 0
Inf y = Inf;
» case {Inf,-Inf}
» exemple y = 0;
x = Inf otherwise
y = y = 1/x;
0 end
» %
» exemple disp('y = '); disp(y);
x = -Inf
y =
0
»
12
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction for
L’instruction for répète un groupe d’instructions un
nombre fini de fois.
Elle doit toujours se terminer par le mot clef end.
Le mot clef break permet de terminer prématurément
la boucle.
MATLAB
» exemple
n = 100
s =
1.6350 exemple.m
e = n = input('n = ');
0.0100 %
» s = 0;
» exemple for k=1:n
n = 500 s = s + 1/k^2;
s = end
1.6429 %
e = disp('s = '); disp(s);
0.0020 disp('e = '); disp(abs(pi^2/6 - s));
»
» exemple
n = 1000
s =
1.6439
e =
9.9950e-004
» exemple
n = 10000
s =
1.6448
e =
9.9995e-005
»
13
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction for
L’instruction for répète un groupe d’instructions un
nombre fini de fois.
Elle doit toujours se terminer par le mot clef end.
Le mot clef break permet de terminer prématurément
la boucle.
MATLAB
» exemple
n = 100
s =
1.6350 exemple.m
e = n = input('n = ');
0.0100 %
» s = 0;
» exemple for k=1:n
n = 500 s = s + 1/k^2;
s = end
1.6429 %
e = disp('s = '); disp(s);
0.0020 disp('e = '); disp(abs(pi^2/6 - s));
»
» exemple
n = 1000
s =
1.6439
e =
9.9950e-004
» exemple
n = 10000
s =
1.6448
e =
9.9995e-005
»
13
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction while
L’instruction while répète un groupe d’instructions
un nombre indéfini de fois sous le contrôle d’une
condition logique.
Elle doit toujours se terminer par le mot clef end.
Le mot clef break permet de terminer prématurément
la boucle.
MATLAB
» exemple
e = 0.01
s =
exemple.m
1.6350
n = e = input('e = ');
100 %
» s = 0;
» exemple k = 0;
e = 0.001 while abs(pi^2/6 - s) > e
s = k = k + 1;
1.6439 s = s + 1/k^2;
n = end
1000 %
» disp('s = '); disp(s);
» exemple disp('n = '); disp(k);
e = 0.0005
s =
1.6444
n =
2000
» exemple
e = 0.0001
s =
1.6448
n =
10000
»
14
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction while
L’instruction while répète un groupe d’instructions
un nombre indéfini de fois sous le contrôle d’une
condition logique.
Elle doit toujours se terminer par le mot clef end.
Le mot clef break permet de terminer prématurément
la boucle.
MATLAB
» exemple
e = 0.01
s =
exemple.m
1.6350
n = e = input('e = ');
100 %
» s = 0;
» exemple k = 0;
e = 0.001 while abs(pi^2/6 - s) > e
s = k = k + 1;
1.6439 s = s + 1/k^2;
n = end
1000 %
» disp('s = '); disp(s);
» exemple disp('n = '); disp(k);
e = 0.0005
s =
1.6444
n =
2000
» exemple
e = 0.0001
s =
1.6448
n =
10000
»
14
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction break
L’instruction break permet de terminer l’exécution
d’une boucle for ou while prématurément.
MATLAB
» exemple
n = 10
1
exemple.m
2
3 n = input('n = ');
4 %
» for k=1:n
if (k == 5), break, end
disp(k);
end
15
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction break
L’instruction break permet de terminer l’exécution
d’une boucle for ou while prématurément.
MATLAB
» exemple
n = 10
1
exemple.m
2
3 n = input('n = ');
4 %
» for k=1:n
if (k == 5), break, end
disp(k);
end
15
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction continue
L’instruction continue permet de sauter à l’itération
suivante dans une boucle for ou while.
MATLAB
» exemple
n = 10
1
exemple.m
2
3 n = input('n = ');
4 %
6 for k=1:n
7 if (k == 5), continue, end
8 disp(k);
9 end
10
»
16
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction continue
L’instruction continue permet de sauter à l’itération
suivante dans une boucle for ou while.
MATLAB
» exemple
n = 10
1
exemple.m
2
3 n = input('n = ');
4 %
6 for k=1:n
7 if (k == 5), continue, end
8 disp(k);
9 end
10
»
16
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction return
L’instruction return provoque le retour à la fonction
appelante.
Les polynômes
La représentation
MATLAB représente un polynôme de degré n
P(x) = p1 xn + p2 xn-1 + … + pn x + pn+1
par un vecteur p=[p(1) p(2)… p(n+1)] où sont
stockés les n+1 coefficients p1, p2 … pn+1.
Les principaux problèmes liés aux polynômes sont:
l’évaluation;
la recherche de racines;
l’adaptation à des données.
17
Matlab à la carte 02/09/2008
Structures de contrôle
L’instruction return
L’instruction return provoque le retour à la fonction
appelante.
Les polynômes
La représentation
MATLAB représente un polynôme de degré n
P(x) = p1 xn + p2 xn-1 + … + pn x + pn+1
par un vecteur p=[p(1) p(2)… p(n+1)] où sont
stockés les n+1 coefficients p1, p2 … pn+1.
Les principaux problèmes liés aux polynômes sont:
l’évaluation;
la recherche de racines;
l’adaptation à des données.
17
Matlab à la carte 02/09/2008
Les polynômes
L’évaluation
La fonction polyval évalue un polynôme P en un
point (ou un ensemble de points) x:
>> y = polyval(p,x);
où x (et donc y) peuvent être des tableaux.
La fonction polyvalm effectue la même évaluation
mais au sens matriciel:
>> Y = polyvalm(p,X);
où X et Y sont des matrices carrées.
MATLAB
» p=[1 -1 -4 4]
p =
P(x)=x3-x2-4x+4
1 -1 -4 4
Figure No. 1
» x=-3:0.1:3;
» y=polyval(p,x);
» plot(x,y,'b-');
» grid('on');
» title('P(x)=x^3-x^2-4x+4');
»
18
Matlab à la carte 02/09/2008
Les polynômes
L’évaluation
La fonction polyval évalue un polynôme P en un
point (ou un ensemble de points) x:
>> y = polyval(p,x);
où x (et donc y) peuvent être des tableaux.
La fonction polyvalm effectue la même évaluation
mais au sens matriciel:
>> Y = polyvalm(p,X);
où X et Y sont des matrices carrées.
MATLAB
» p=[1 -1 -4 4]
p =
P(x)=x3-x2-4x+4
1 -1 -4 4
Figure No. 1
» x=-3:0.1:3;
» y=polyval(p,x);
» plot(x,y,'b-');
» grid('on');
» title('P(x)=x^3-x^2-4x+4');
»
18
Matlab à la carte 02/09/2008
MATLAB
» A=[0 1; 1 1]
A =
0 1
1 1
» q=[1 2 3]
q =
Q(x)=x2+2x+3
1 2 3
» polyvalm(q,A)
ans =
4 3
3 7
» p=[1 -1 -1]
p = P(x)=x2-x-1
1 -1 -1
» polyvalm(p,A)
ans =
0 0
0 0 P(x) est le polynôme caractéristique de A
»
Les polynômes
La recherche des racines
Les racines (ou zéros) de P(x) sont obtenues avec
l’aide de la fonction roots :
>> z = roots(p);
La fonction poly effectue l’opération inverse:
>> p = poly(z);
avec la normalisation p(1)=1:
p1 xn + p2 xn-1 + … + pn x + pn+1 = (x-z1)(x-z2)…(x-zn).
19
Matlab à la carte 02/09/2008
MATLAB
» A=[0 1; 1 1]
A =
0 1
1 1
» q=[1 2 3]
q =
Q(x)=x2+2x+3
1 2 3
» polyvalm(q,A)
ans =
4 3
3 7
» p=[1 -1 -1]
p = P(x)=x2-x-1
1 -1 -1
» polyvalm(p,A)
ans =
0 0
0 0 P(x) est le polynôme caractéristique de A
»
Les polynômes
La recherche des racines
Les racines (ou zéros) de P(x) sont obtenues avec
l’aide de la fonction roots :
>> z = roots(p);
La fonction poly effectue l’opération inverse:
>> p = poly(z);
avec la normalisation p(1)=1:
p1 xn + p2 xn-1 + … + pn x + pn+1 = (x-z1)(x-z2)…(x-zn).
19
Matlab à la carte 02/09/2008
MATLAB
» p=[1 -1 -4 4];
» z=roots(p)
z =
2.0000
Figure No. 1
-2.0000
1.0000
» t=polyval(p,z)
t =
0
0
0
» p=poly(z)
p =
1 -1 -4 4
» x=-3:0.1:3;
» y=polyval(p,x);
» plot(x,y,'b-',z,t,'r*');
» grid('on');
» title('P(x)=x^3-x^2-4x+4');
»
MATLAB
» p=[1 -3 4 -2];
» z=roots(p)
z =
1.0000 + 1.0000i
1.0000 - 1.0000i
1.0000
» p=poly(z)
p =
1.0000 -3.0000 4.0000 -2.0000
»
20
Matlab à la carte 02/09/2008
MATLAB
» p=[1 -1 -4 4];
» z=roots(p)
z =
2.0000
Figure No. 1
-2.0000
1.0000
» t=polyval(p,z)
t =
0
0
0
» p=poly(z)
p =
1 -1 -4 4
» x=-3:0.1:3;
» y=polyval(p,x);
» plot(x,y,'b-',z,t,'r*');
» grid('on');
» title('P(x)=x^3-x^2-4x+4');
»
MATLAB
» p=[1 -3 4 -2];
» z=roots(p)
z =
1.0000 + 1.0000i
1.0000 - 1.0000i
1.0000
» p=poly(z)
p =
1.0000 -3.0000 4.0000 -2.0000
»
20
Matlab à la carte 02/09/2008
Les polynômes
Les opérations
La multiplication et la division polynomiales sont
effectuées par les fonctions conv et deconv:
>> [q,r] = deconv(g,h);
>> g = conv(h,q)+r;
où q et r sont les coefficients des polynômes quotient
Q et reste R:
G(x)=H(x)Q(x)+R(x).
MATLAB
» g=[1 -3 -5 15 4 -12];
» h=[1 -2 -1 2];
» roots(g)
ans =
3.0000
2.0000
-2.0000
1.0000
-1.0000
» roots(h)
ans =
2.0000
1.0000
-1.0000
» [q,r]=deconv(g,h)
q =
1 -1 -6
r =
0 0 0 0 0 0
» g=conv(q,h)
g =
1 -3 -5 15 4 -12
»
21
Matlab à la carte 02/09/2008
Les polynômes
Les opérations
La multiplication et la division polynomiales sont
effectuées par les fonctions conv et deconv:
>> [q,r] = deconv(g,h);
>> g = conv(h,q)+r;
où q et r sont les coefficients des polynômes quotient
Q et reste R:
G(x)=H(x)Q(x)+R(x).
MATLAB
» g=[1 -3 -5 15 4 -12];
» h=[1 -2 -1 2];
» roots(g)
ans =
3.0000
2.0000
-2.0000
1.0000
-1.0000
» roots(h)
ans =
2.0000
1.0000
-1.0000
» [q,r]=deconv(g,h)
q =
1 -1 -6
r =
0 0 0 0 0 0
» g=conv(q,h)
g =
1 -3 -5 15 4 -12
»
21
Matlab à la carte 02/09/2008
Les polynômes
La dérivation
La fonction polyder retourne les coefficients q du
polynôme Q(x) dérivé de P(x):
>> q = polyder(p);
Les polynômes
La dérivation
Avec deux arguments en entrée U(x) et V(x)
>> q = polyder(u,v);
le vecteur q contient les coefficients de la dérivée
U’(x)V(x)+U(x)V’(x) du produit U(x)V(x).
Avec deux arguments en sortie P(x) et Q(x)
>> [p,q] = polyder(u,v);
le vecteur q contient les coefficients de la dérivée
[U’(x)V(x)-U(x)V’(x)]/V 2(x) du quotient U(x)/V(x).
22
Matlab à la carte 02/09/2008
Les polynômes
La dérivation
La fonction polyder retourne les coefficients q du
polynôme Q(x) dérivé de P(x):
>> q = polyder(p);
Les polynômes
La dérivation
Avec deux arguments en entrée U(x) et V(x)
>> q = polyder(u,v);
le vecteur q contient les coefficients de la dérivée
U’(x)V(x)+U(x)V’(x) du produit U(x)V(x).
Avec deux arguments en sortie P(x) et Q(x)
>> [p,q] = polyder(u,v);
le vecteur q contient les coefficients de la dérivée
[U’(x)V(x)-U(x)V’(x)]/V 2(x) du quotient U(x)/V(x).
22
Matlab à la carte 02/09/2008
MATLAB
» u=[1 0 -5 0 4 0];
» v=[1 -2 -1 2];
» du=polyder(u)
du =
5 0 -15 0 4
» dv=polyder(v)
dv =
3 -4 -1
» q=polyder(u,v)
q =
8 -14 -36 60 36 -54 -8 8
» % (u’v+uv’)
» q=conv(du,v)+conv(u,dv)
q =
8 -14 -36 60 36 -54 -8 8
»
MATLAB
» u=[1 0 -5 0 4 0];
» v=[1 -2 -1 2];
» du=polyder(u)
du =
5 0 -15 0 4
» dv=polyder(v)
dv =
3 -4 -1
» [p,q]=polyder(u,v)
p =
2 -6 -4 20 2 -22 0 8
q =
1 -4 2 8 -7 -4 4
» [p,q]=deconv(p,q)
p =
2 2
q =
0 0 0 0 0 0 0 0
» % (u’v-uv’)/v²
» deconv(conv(du,v)-conv(u,dv),conv(v,v))
p =
2 2
q =
0 0 0 0 0 0 0 0
»
MATLAB à la carte — module 2: « Programmation de base » 45 / 115
23
Matlab à la carte 02/09/2008
MATLAB
» u=[1 0 -5 0 4 0];
» v=[1 -2 -1 2];
» du=polyder(u)
du =
5 0 -15 0 4
» dv=polyder(v)
dv =
3 -4 -1
» q=polyder(u,v)
q =
8 -14 -36 60 36 -54 -8 8
» % (u’v+uv’)
» q=conv(du,v)+conv(u,dv)
q =
8 -14 -36 60 36 -54 -8 8
»
MATLAB
» u=[1 0 -5 0 4 0];
» v=[1 -2 -1 2];
» du=polyder(u)
du =
5 0 -15 0 4
» dv=polyder(v)
dv =
3 -4 -1
» [p,q]=polyder(u,v)
p =
2 -6 -4 20 2 -22 0 8
q =
1 -4 2 8 -7 -4 4
» [p,q]=deconv(p,q)
p =
2 2
q =
0 0 0 0 0 0 0 0
» % (u’v-uv’)/v²
» deconv(conv(du,v)-conv(u,dv),conv(v,v))
p =
2 2
q =
0 0 0 0 0 0 0 0
»
MATLAB à la carte — module 2: « Programmation de base » 45 / 115
23
Matlab à la carte 02/09/2008
Les polynômes
L’adaptation à des données
Le problème de l’adaptation à des données est résolu
avec l’aide de la fonction polyfit :
>> p = polyfit(xi,yi,n);
qui, pour un jeu de m paires (xi , yi)i1, calcule les
coefficients du polynôme P(x) de degré n qui
minimise le critère quadratique i1 | P(xi) - yi |2.
MATLAB
» xi=-5:5;
» yi=12./polyval([1 2 5],xi);
» x=-5:0.01:5;
» y=12./polyval([1 2 5],x);
» plot(x,y,'k-',xi,yi,'b*'); Figure No. 1
» hold('on');
» grid('on');
» p=polyfit(xi,yi,10);
» y=polyval(p,x);
» plot(x,y,'r-');
» p=polyfit(xi,yi,8);
» y=polyval(p,x);
» plot(x,y,'g-');
» p=polyfit(xi,yi,5);
» y=polyval(p,x);
» plot(x,y,'m-');
» p=polyfit(xi,yi,3);
» y=polyval(p,x);
» plot(x,y,'c-');
» legend('y=f(x)','(x_i,y_i)','n=10','n=8','n=5','n=3');
»
24
Matlab à la carte 02/09/2008
Les polynômes
L’adaptation à des données
Le problème de l’adaptation à des données est résolu
avec l’aide de la fonction polyfit :
>> p = polyfit(xi,yi,n);
qui, pour un jeu de m paires (xi , yi)i1, calcule les
coefficients du polynôme P(x) de degré n qui
minimise le critère quadratique i1 | P(xi) - yi |2.
MATLAB
» xi=-5:5;
» yi=12./polyval([1 2 5],xi);
» x=-5:0.01:5;
» y=12./polyval([1 2 5],x);
» plot(x,y,'k-',xi,yi,'b*'); Figure No. 1
» hold('on');
» grid('on');
» p=polyfit(xi,yi,10);
» y=polyval(p,x);
» plot(x,y,'r-');
» p=polyfit(xi,yi,8);
» y=polyval(p,x);
» plot(x,y,'g-');
» p=polyfit(xi,yi,5);
» y=polyval(p,x);
» plot(x,y,'m-');
» p=polyfit(xi,yi,3);
» y=polyval(p,x);
» plot(x,y,'c-');
» legend('y=f(x)','(x_i,y_i)','n=10','n=8','n=5','n=3');
»
24
Matlab à la carte 02/09/2008
Les polynômes
L’adaptation à des données
Une autre approche est possible avec la fonction
spline:
>> y = spline(xi,yi,x);
qui, pour un jeu de m paires (xi , yi)i1, cherche la
spline (x) qui s’adapte le mieux aux données:
(x) est cubique entre deux points successifs,
et satisfait les m conditions de collocation (xi)=yi.
MATLAB
» xi=-5:5;
» yi=12./polyval([1 2 5],xi);
» x=-5:0.01:5;
» y=12./polyval([1 2 5],x);
» plot(x,y,'k-',xi,yi,'b*'); Figure No. 1
» hold('on');
» grid('on');
» p=polyfit(xi,yi,10);
» y=polyval(p,x);
» plot(x,y,'r-');
» y=spline(xi,yi,x);
» plot(x,y,'g-');
» legend('y=f(x)','(x_i,y_i)','n=10','spline');
»
25
Matlab à la carte 02/09/2008
Les polynômes
L’adaptation à des données
Une autre approche est possible avec la fonction
spline:
>> y = spline(xi,yi,x);
qui, pour un jeu de m paires (xi , yi)i1, cherche la
spline (x) qui s’adapte le mieux aux données:
(x) est cubique entre deux points successifs,
et satisfait les m conditions de collocation (xi)=yi.
MATLAB
» xi=-5:5;
» yi=12./polyval([1 2 5],xi);
» x=-5:0.01:5;
» y=12./polyval([1 2 5],x);
» plot(x,y,'k-',xi,yi,'b*'); Figure No. 1
» hold('on');
» grid('on');
» p=polyfit(xi,yi,10);
» y=polyval(p,x);
» plot(x,y,'r-');
» y=spline(xi,yi,x);
» plot(x,y,'g-');
» legend('y=f(x)','(x_i,y_i)','n=10','spline');
»
25
Matlab à la carte 02/09/2008
L’interpolation de données
Interpolation en dimension 1
Pour un jeu de m paires (xi , yi)i1, la fonction
interp1 propose différents interpolants et retourne
les valeurs y ainsi obtenues en certains points x:
>> y = interp1(xi,yi,x,'method');
Quatre interpolants sont possibles:
• 'nearest' plus proche voisin (° 0)
• 'linear' linéaire (° 1, défaut)
• 'spline' spline (° 3)
• 'cubic' cubique (° 3)
MATLAB à la carte — module 2: « Programmation de base » 50 / 115
L’interpolation de donnéesinterp1
MATLAB
» xi=-5:5;
» yi=12./polyval([1 2 5],xi);
» x=-5:0.01:5;
» y=12./polyval([1 2 5],x);
» plot(x,y,'k-',xi,yi,'b*'); Figure No. 1
» hold('on');
» grid('on');
» y=interp1(xi,yi,x,'nearest');
» plot(x,y,'g-');
» y=interp1(xi,yi,x,'linear');
» plot(x,y,'r-');
» y=interp1(xi,yi,x,'cubic');
» plot(x,y,'r-');
» y=interp1(xi,yi,x,'spline');
» plot(x,y,'r-');
» legend('y=f(x)','(x_i,y_i)','nearest','linear','cubic','spline');
»
26
Matlab à la carte 02/09/2008
L’interpolation de données
Interpolation en dimension 1
Pour un jeu de m paires (xi , yi)i1, la fonction
interp1 propose différents interpolants et retourne
les valeurs y ainsi obtenues en certains points x:
>> y = interp1(xi,yi,x,'method');
Quatre interpolants sont possibles:
• 'nearest' plus proche voisin (° 0)
• 'linear' linéaire (° 1, défaut)
• 'spline' spline (° 3)
• 'cubic' cubique (° 3)
MATLAB à la carte — module 2: « Programmation de base » 50 / 115
L’interpolation de donnéesinterp1
MATLAB
» xi=-5:5;
» yi=12./polyval([1 2 5],xi);
» x=-5:0.01:5;
» y=12./polyval([1 2 5],x);
» plot(x,y,'k-',xi,yi,'b*'); Figure No. 1
» hold('on');
» grid('on');
» y=interp1(xi,yi,x,'nearest');
» plot(x,y,'g-');
» y=interp1(xi,yi,x,'linear');
» plot(x,y,'r-');
» y=interp1(xi,yi,x,'cubic');
» plot(x,y,'r-');
» y=interp1(xi,yi,x,'spline');
» plot(x,y,'r-');
» legend('y=f(x)','(x_i,y_i)','nearest','linear','cubic','spline');
»
26
Matlab à la carte 02/09/2008
L’interpolation de données
Interpolation en dimension 2
MATLAB a aussi des fonctions pour interpoler des
données surfaciques zi = f (xi , yi):
>> z = interp2(xi,yi,zi,x,y);
>> z = griddata(xi,yi,zi,x,y);
selon que les zi sont régulièrement échantillonnées en
des points (xi , yi) définissant une grille ou pas.
Trois interpolants sont possibles:
• 'nearest' plus proche voisin (° 0)
• 'linear' linéaire (° 1, défaut)
• carte
MATLAB à la 'cubic' cubique
— module 2: « Programmation de base »(° 3) 52 / 115
L’interpolation de donnéesinterp2
MATLAB
» [Xi,Yi] = meshgrid(-3:0.25:3); Zi = peaks(Xi,Yi);
» [X ,Y ] = meshgrid(-3:0.20:3); Z = interp2(Xi,Yi,Zi,X,Y);
» figure(1);
» plot3(Xi,Yi,Zi,'b.');
Figure No. 1
» hold('on');
» mesh(X,Y,Z);
» box('on');
» grid('on');
» hidden('off');
» whos
Name Size Bytes Class
Xi 25x25 5000 double
Yi 25x25 5000 double
Zi 25x25 5000 double
X 31x31 7688 double
Y 31x31 7688 double
Z 31x31 7688 double
» k = find(~isnan(Z));
» err = sqrt(sum((Z(k)-peaks(X(k),Y(k))).^2))/length(k)
err = 0.0021
»
27
Matlab à la carte 02/09/2008
L’interpolation de données
Interpolation en dimension 2
MATLAB a aussi des fonctions pour interpoler des
données surfaciques zi = f (xi , yi):
>> z = interp2(xi,yi,zi,x,y);
>> z = griddata(xi,yi,zi,x,y);
selon que les zi sont régulièrement échantillonnées en
des points (xi , yi) définissant une grille ou pas.
Trois interpolants sont possibles:
• 'nearest' plus proche voisin (° 0)
• 'linear' linéaire (° 1, défaut)
• carte
MATLAB à la 'cubic' cubique
— module 2: « Programmation de base »(° 3) 52 / 115
L’interpolation de donnéesinterp2
MATLAB
» [Xi,Yi] = meshgrid(-3:0.25:3); Zi = peaks(Xi,Yi);
» [X ,Y ] = meshgrid(-3:0.20:3); Z = interp2(Xi,Yi,Zi,X,Y);
» figure(1);
» plot3(Xi,Yi,Zi,'b.');
Figure No. 1
» hold('on');
» mesh(X,Y,Z);
» box('on');
» grid('on');
» hidden('off');
» whos
Name Size Bytes Class
Xi 25x25 5000 double
Yi 25x25 5000 double
Zi 25x25 5000 double
X 31x31 7688 double
Y 31x31 7688 double
Z 31x31 7688 double
» k = find(~isnan(Z));
» err = sqrt(sum((Z(k)-peaks(X(k),Y(k))).^2))/length(k)
err = 0.0021
»
27
Matlab à la carte 02/09/2008
L’interpolation de donnéesgriddata
MATLAB
» xi = rand(625,1)*6-3; yi = rand(625,1)*6-3; zi = peaks(xi,yi);
» [X,Y] = meshgrid(-3:0.20:3); Z = griddata(xi,yi,zi,X,Y);
» figure(2);
» plot3(xi,yi,zi,'b.');
Figure No. 2
» hold('on');
» mesh(X,Y,Z);
» box('on');
» grid('on');
» hidden('off');
» whos
Name Size Bytes Class
xi 625x1 5000 double
yi 625x1 5000 double
zi 625x1 5000 double
X 31x31 7688 double
Y 31x31 7688 double
Z 31x31 7688 double
» k = find(~isnan(Z));
» err = sqrt(sum((Z(k)-peaks(X(k),Y(k))).^2))/length(k)
err = 0.0038
»
L’interpolation de données
Interpolation en dimension 3
MATLAB a aussi des fonctions pour interpoler des
données volumiques vi = f (xi , yi , zi):
>> v = interp3(xi,yi,zi,vi,x,y,z);
>> v = griddata3(xi,yi,zi,vi,x,y,z);
selon que les vi sont régulièrement échantillonnées en
des points (xi , yi , zi) définissant une grille ou pas.
Trois interpolants sont possibles:
• 'nearest' plus proche voisin (° 0)
• 'linear' linéaire (° 1, défaut)
• carte
MATLAB à la 'cubic' cubique
— module 2: « Programmation de base »(° 3) 55 / 115
28
Matlab à la carte 02/09/2008
L’interpolation de donnéesgriddata
MATLAB
» xi = rand(625,1)*6-3; yi = rand(625,1)*6-3; zi = peaks(xi,yi);
» [X,Y] = meshgrid(-3:0.20:3); Z = griddata(xi,yi,zi,X,Y);
» figure(2);
» plot3(xi,yi,zi,'b.');
Figure No. 2
» hold('on');
» mesh(X,Y,Z);
» box('on');
» grid('on');
» hidden('off');
» whos
Name Size Bytes Class
xi 625x1 5000 double
yi 625x1 5000 double
zi 625x1 5000 double
X 31x31 7688 double
Y 31x31 7688 double
Z 31x31 7688 double
» k = find(~isnan(Z));
» err = sqrt(sum((Z(k)-peaks(X(k),Y(k))).^2))/length(k)
err = 0.0038
»
L’interpolation de données
Interpolation en dimension 3
MATLAB a aussi des fonctions pour interpoler des
données volumiques vi = f (xi , yi , zi):
>> v = interp3(xi,yi,zi,vi,x,y,z);
>> v = griddata3(xi,yi,zi,vi,x,y,z);
selon que les vi sont régulièrement échantillonnées en
des points (xi , yi , zi) définissant une grille ou pas.
Trois interpolants sont possibles:
• 'nearest' plus proche voisin (° 0)
• 'linear' linéaire (° 1, défaut)
• carte
MATLAB à la 'cubic' cubique
— module 2: « Programmation de base »(° 3) 55 / 115
28
Matlab à la carte 02/09/2008
L’analyse de données
Statistiques élémentaires
MATLAB a un certain nombre de fonctions pour
l’analyse de données d’un point de vue statistique:
min plus petite valeur
max plus grande valeur
mean moyenne
std déviation standard
var variance
median valeur médiane
sort tri par valeur croissante/décroissante
MATLAB à la carte — module 2: « Programmation de base » 56 / 115
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» min(X)
ans =
0.2311
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» min(A,[],1) %% min(A)
ans =
0.2311 0.4860 0.0185 0.4447 0.1763
» min(A,[],2) %% min(A')'
ans =
0.4447
0.0185
0.1763
»
29
Matlab à la carte 02/09/2008
L’analyse de données
Statistiques élémentaires
MATLAB a un certain nombre de fonctions pour
l’analyse de données d’un point de vue statistique:
min plus petite valeur
max plus grande valeur
mean moyenne
std déviation standard
var variance
median valeur médiane
sort tri par valeur croissante/décroissante
MATLAB à la carte — module 2: « Programmation de base » 56 / 115
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» min(X)
ans =
0.2311
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» min(A,[],1) %% min(A)
ans =
0.2311 0.4860 0.0185 0.4447 0.1763
» min(A,[],2) %% min(A')'
ans =
0.4447
0.0185
0.1763
»
29
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» [x,k]=min(X)
x =
0.2311
k =
2
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» [a,k]=min(A)
a =
0.2311 0.4860 0.0185 0.4447 0.1763
k =
2 1 2 1 3
»
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» max(X)
ans =
0.9501
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» max(A,[],1) %% max(A)
ans =
0.9501 0.8913 0.8214 0.7919 0.9218
» max(A,[],2) %% max(A')'
ans =
0.9501
0.8913
0.8214
»
30
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» [x,k]=min(X)
x =
0.2311
k =
2
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» [a,k]=min(A)
a =
0.2311 0.4860 0.0185 0.4447 0.1763
k =
2 1 2 1 3
»
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» max(X)
ans =
0.9501
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» max(A,[],1) %% max(A)
ans =
0.9501 0.8913 0.8214 0.7919 0.9218
» max(A,[],2) %% max(A')'
ans =
0.9501
0.8913
0.8214
»
30
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» [x,k]=max(X)
x =
0.9501
k =
1
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» [a,k]=max(A)
a =
0.9501 0.8913 0.8214 0.7919 0.9218
k =
1 2 3 3 1
»
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» mean(X)
ans =
0.6331
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» mean(A,1) %% mean(A)
ans =
0.5960 0.7131 0.4321 0.6174 0.6121
» mean(A,2) %% mean(A')'
ans =
0.6518
0.4989
0.6317
»
31
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» [x,k]=max(X)
x =
0.9501
k =
1
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» [a,k]=max(A)
a =
0.9501 0.8913 0.8214 0.7919 0.9218
k =
1 2 3 3 1
»
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» mean(X)
ans =
0.6331
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» mean(A,1) %% mean(A)
ans =
0.5960 0.7131 0.4321 0.6174 0.6121
» mean(A,2) %% mean(A')'
ans =
0.6518
0.4989
0.6317
»
31
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» std(X,0) %% std(X)
ans =
0.2963
» std(X,1)
ans =
0.2650
»
MATLAB
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» std(A,0,1) %% std(A,0) std(A)
ans =
0.3596 0.2070 0.4020 0.1736 0.3884
» std(A,1,1) %% std(A,1)
ans =
0.2936 0.1691 0.3282 0.1418 0.3172
» std(A,0,2) %% std(A',0)' std(A')'
ans =
0.2600
0.3631
0.2677
» std(A,1,2) %% std(A',1)'
ans =
0.2326
0.3245
0.2395
»
MATLAB à la carte — module 2: « Programmation de base » 63 / 115
32
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» std(X,0) %% std(X)
ans =
0.2963
» std(X,1)
ans =
0.2650
»
MATLAB
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» std(A,0,1) %% std(A,0) std(A)
ans =
0.3596 0.2070 0.4020 0.1736 0.3884
» std(A,1,1) %% std(A,1)
ans =
0.2936 0.1691 0.3282 0.1418 0.3172
» std(A,0,2) %% std(A',0)' std(A')'
ans =
0.2600
0.3631
0.2677
» std(A,1,2) %% std(A',1)'
ans =
0.2326
0.3245
0.2395
»
MATLAB à la carte — module 2: « Programmation de base » 63 / 115
32
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» var(X,0) %% var(X)
ans =
0.0878
» var(X,1)
ans =
0.0702
»
MATLAB
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» var(A,0,1) %% var(A,0) var(A)
ans =
0.1293 0.0429 0.1616 0.0301 0.1509
» var(A,1,1) %% var(A,1)
ans =
0.0862 0.0286 0.1077 0.0201 0.1006
» var(A,0,2) %% var(A',0)' var(A')'
ans =
0.0676
0.1318
0.0717
» var(A,1,2) %% var(A',1)'
ans =
0.0541
0.1055
0.0573
»
MATLAB à la carte — module 2: « Programmation de base » 65 / 115
33
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» var(X,0) %% var(X)
ans =
0.0878
» var(X,1)
ans =
0.0702
»
MATLAB
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» var(A,0,1) %% var(A,0) var(A)
ans =
0.1293 0.0429 0.1616 0.0301 0.1509
» var(A,1,1) %% var(A,1)
ans =
0.0862 0.0286 0.1077 0.0201 0.1006
» var(A,0,2) %% var(A',0)' var(A')'
ans =
0.0676
0.1318
0.0717
» var(A,1,2) %% var(A',1)'
ans =
0.0541
0.1055
0.0573
»
MATLAB à la carte — module 2: « Programmation de base » 65 / 115
33
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» median(X)
ans =
0.6068
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» median(A,1) %% median(A)
ans =
0.6068 0.7621 0.4565 0.6154 0.7382
» median(A,2) %% median(A')'
ans =
0.4860
0.6154
0.7621
»
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» sort(X)
ans =
0.2311 0.4860 0.6068 0.8913 0.9501
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» sort(A,1) %% sort(A)
ans =
0.2311 0.4860 0.0185 0.4447 0.1763
0.6068 0.7621 0.4565 0.6154 0.7382
0.9501 0.8913 0.8214 0.7919 0.9218
» sort(A,2) %% sort(A')'
ans =
0.4447 0.4565 0.4860 0.9218 0.9501
0.0185 0.2311 0.6154 0.7382 0.8913
0.1763 0.6068 0.7621 0.7919 0.8214
»
MATLAB à la carte — module 2: « Programmation de base » 67 / 115
34
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» median(X)
ans =
0.6068
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» median(A,1) %% median(A)
ans =
0.6068 0.7621 0.4565 0.6154 0.7382
» median(A,2) %% median(A')'
ans =
0.4860
0.6154
0.7621
»
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» sort(X)
ans =
0.2311 0.4860 0.6068 0.8913 0.9501
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» sort(A,1) %% sort(A)
ans =
0.2311 0.4860 0.0185 0.4447 0.1763
0.6068 0.7621 0.4565 0.6154 0.7382
0.9501 0.8913 0.8214 0.7919 0.9218
» sort(A,2) %% sort(A')'
ans =
0.4447 0.4565 0.4860 0.9218 0.9501
0.0185 0.2311 0.6154 0.7382 0.8913
0.1763 0.6068 0.7621 0.7919 0.8214
»
MATLAB à la carte — module 2: « Programmation de base » 67 / 115
34
Matlab à la carte 02/09/2008
L’analyse de données
Statistiques élémentaires
MATLAB a un certain nombre de fonctions pour
l’analyse de données d’un point de vue statistique:
sum somme
cumsum somme cumulée
prod produit
cumprod produit cumulé
trapz intégration numérique
cumtrapz intégration numérique cumulée
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» sum(X)
ans =
3.1654
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» sum(A,1) %% sum(A)
ans =
1.7881 2.1394 1.2964 1.8521 1.8363
» sum(A,2) %% sum(A')'
ans =
3.2591
2.4946
3.1585
»
35
Matlab à la carte 02/09/2008
L’analyse de données
Statistiques élémentaires
MATLAB a un certain nombre de fonctions pour
l’analyse de données d’un point de vue statistique:
sum somme
cumsum somme cumulée
prod produit
cumprod produit cumulé
trapz intégration numérique
cumtrapz intégration numérique cumulée
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» sum(X)
ans =
3.1654
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» sum(A,1) %% sum(A)
ans =
1.7881 2.1394 1.2964 1.8521 1.8363
» sum(A,2) %% sum(A')'
ans =
3.2591
2.4946
3.1585
»
35
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» cumsum(X)
ans =
0.9501 1.1813 1.7881 2.2741 3.1654
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» cumsum(A,1) %% cumsum(A)
ans =
0.9501 0.4860 0.4565 0.4447 0.9218
1.1813 1.3773 0.4750 1.0601 1.6600
1.7881 2.1394 1.2964 1.8521 1.8363
» cumsum(A,2) %% cumsum(A')'
ans =
0.9501 1.4361 1.8926 2.3373 3.2591
0.2311 1.1224 1.1409 1.7564 2.4946
0.6068 1.3689 2.1903 2.9823 3.1585
»
MATLAB à la carte — module 2: « Programmation de base » 70 / 115
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» prod(X)
ans =
0.0577
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» prod(A,1) %% prod(A)
ans =
0.1333 0.3301 0.0069 0.2167 0.1199
» prod(A,2) %% prod(A')'
ans =
0.0864
0.0017
0.0530
»
36
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» cumsum(X)
ans =
0.9501 1.1813 1.7881 2.2741 3.1654
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» cumsum(A,1) %% cumsum(A)
ans =
0.9501 0.4860 0.4565 0.4447 0.9218
1.1813 1.3773 0.4750 1.0601 1.6600
1.7881 2.1394 1.2964 1.8521 1.8363
» cumsum(A,2) %% cumsum(A')'
ans =
0.9501 1.4361 1.8926 2.3373 3.2591
0.2311 1.1224 1.1409 1.7564 2.4946
0.6068 1.3689 2.1903 2.9823 3.1585
»
MATLAB à la carte — module 2: « Programmation de base » 70 / 115
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» prod(X)
ans =
0.0577
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» prod(A,1) %% prod(A)
ans =
0.1333 0.3301 0.0069 0.2167 0.1199
» prod(A,2) %% prod(A')'
ans =
0.0864
0.0017
0.0530
»
36
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» cumprod(X)
ans =
0.9501 0.2196 0.1333 0.0648 0.0577
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» cumprod(A,1) %% cumprod(A)
ans =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2196 0.4332 0.0084 0.2737 0.6805
0.1333 0.3301 0.0069 0.2167 0.1199
» cumprod(A,2) %% cumprod(A')'
ans =
0.9501 0.4617 0.2108 0.0937 0.0864
0.2311 0.2060 0.0038 0.0023 0.0017
0.6068 0.4625 0.3799 0.3008 0.0530
»
MATLAB à la carte — module 2: « Programmation de base » 72 / 115
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» trapz(X)
ans =
2.2447
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» trapz(A,1) %% trapz(A)
ans =
1.0096 1.5153 0.6574 1.2338 1.2872
» trapz(A,2) %% trapz(A')'
ans =
2.3231
2.0099
2.7670
»
37
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» cumprod(X)
ans =
0.9501 0.2196 0.1333 0.0648 0.0577
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» cumprod(A,1) %% cumprod(A)
ans =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2196 0.4332 0.0084 0.2737 0.6805
0.1333 0.3301 0.0069 0.2167 0.1199
» cumprod(A,2) %% cumprod(A')'
ans =
0.9501 0.4617 0.2108 0.0937 0.0864
0.2311 0.2060 0.0038 0.0023 0.0017
0.6068 0.4625 0.3799 0.3008 0.0530
»
MATLAB à la carte — module 2: « Programmation de base » 72 / 115
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» trapz(X)
ans =
2.2447
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» trapz(A,1) %% trapz(A)
ans =
1.0096 1.5153 0.6574 1.2338 1.2872
» trapz(A,2) %% trapz(A')'
ans =
2.3231
2.0099
2.7670
»
37
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» cumtrapz(X)
ans =
0 0.5906 1.0096 1.5560 2.2447
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» cumtrapz(A,1) %% cumtrapz(A)
ans =
0 0 0 0 0
0.5906 0.6886 0.2375 0.5301 0.8300
1.0096 1.5153 0.6574 1.2338 1.2872
» cumtrapz(A,2) %% cumtrapz(A')'
ans =
0 0.7181 1.1893 1.6399 2.3231
0 0.5612 1.0161 1.3331 2.0099
0 0.6845 1.4762 2.2829 2.7670
»
MATLAB à la carte — module 2: « Programmation de base » 74 / 115
L’analyse de données
Histogramme
L’histogramme est obtenu avec la fonction hist:
>> N = hist(X,n);
où les valeurs des n comptes (défaut 10) retournées
dans N sont centrées sur des valeurs équidistantes.
>> N = hist(X,B);
où B est un vecteur sur lequel les comptes des sont
centrés.
38
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(1,5)
X =
0.9501 0.2311 0.6068 0.4860 0.8913
» cumtrapz(X)
ans =
0 0.5906 1.0096 1.5560 2.2447
» rand('state',0);
» A=rand(3,5)
A =
0.9501 0.4860 0.4565 0.4447 0.9218
0.2311 0.8913 0.0185 0.6154 0.7382
0.6068 0.7621 0.8214 0.7919 0.1763
» cumtrapz(A,1) %% cumtrapz(A)
ans =
0 0 0 0 0
0.5906 0.6886 0.2375 0.5301 0.8300
1.0096 1.5153 0.6574 1.2338 1.2872
» cumtrapz(A,2) %% cumtrapz(A')'
ans =
0 0.7181 1.1893 1.6399 2.3231
0 0.5612 1.0161 1.3331 2.0099
0 0.6845 1.4762 2.2829 2.7670
»
MATLAB à la carte — module 2: « Programmation de base » 74 / 115
L’analyse de données
Histogramme
L’histogramme est obtenu avec la fonction hist:
>> N = hist(X,n);
où les valeurs des n comptes (défaut 10) retournées
dans N sont centrées sur des valeurs équidistantes.
>> N = hist(X,B);
où B est un vecteur sur lequel les comptes des sont
centrés.
38
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(10000,1);
» N=hist(X)
N =
1018 947 980 941 1007 1004 1012 1050 1009 1032
» N=hist(X,36)
N =
Columns 1 through 12
316 263 265 271 277 266 248 274 281 268 263 283
Columns 13 through 24
245 259 296 260 285 273 310 258 278 265 291 286
Columns 25 through 36
275 292 287 306 262 315 261 259 276 286 282 318
»
MATLAB
» rand('state',0);
» X=rand(10000,1);
» N=hist(X)
N =
Figure No. 1
1018 947 980 941 1007 1004 1012 1050 1009 1032
» N=hist(X,36)
N =
Columns 1 through 12
316 263 265 271 277 266 248 274 281 268 263 283
Columns 13 through 24
245 259 296 260 285 273 310 258 278 265 291 286
Columns 25 through 36
275 292 287 306 262 315 261 259 276 286 282 318
» figure(1);
» hist(X,36);
»
39
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=rand(10000,1);
» N=hist(X)
N =
1018 947 980 941 1007 1004 1012 1050 1009 1032
» N=hist(X,36)
N =
Columns 1 through 12
316 263 265 271 277 266 248 274 281 268 263 283
Columns 13 through 24
245 259 296 260 285 273 310 258 278 265 291 286
Columns 25 through 36
275 292 287 306 262 315 261 259 276 286 282 318
»
MATLAB
» rand('state',0);
» X=rand(10000,1);
» N=hist(X)
N =
Figure No. 1
1018 947 980 941 1007 1004 1012 1050 1009 1032
» N=hist(X,36)
N =
Columns 1 through 12
316 263 265 271 277 266 248 274 281 268 263 283
Columns 13 through 24
245 259 296 260 285 273 310 258 278 265 291 286
Columns 25 through 36
275 292 287 306 262 315 261 259 276 286 282 318
» figure(1);
» hist(X,36);
»
39
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=randn(10000,1);
» N=hist(X)
N =
13 103 534 1491 2749 2803 1620 553 116 18
» N=hist(X,36)
N =
Columns 1 through 12
1 3 3 10 13 29 49 64 114 166 243 319
Columns 13 through 24
388 510 622 727 762 867 832 835 732 668 545 420
Columns 25 through 36
329 260 168 104 98 50 29 18 11 2 6 3
»
MATLAB
» rand('state',0);
» X=randn(10000,1);
» N=hist(X)
N =
Figure No. 1
13 103 534 1491 2749 2803 1620 553 116 18
» N=hist(X,36)
N =
Columns 1 through 12
1 3 3 10 13 29 49 64 114 166 243 319
Columns 13 through 24
388 510 622 727 762 867 832 835 732 668 545 420
Columns 25 through 36
329 260 168 104 98 50 29 18 11 2 6 3
» figure(1);
» hist(X,36);
»
40
Matlab à la carte 02/09/2008
MATLAB
» rand('state',0);
» X=randn(10000,1);
» N=hist(X)
N =
13 103 534 1491 2749 2803 1620 553 116 18
» N=hist(X,36)
N =
Columns 1 through 12
1 3 3 10 13 29 49 64 114 166 243 319
Columns 13 through 24
388 510 622 727 762 867 832 835 732 668 545 420
Columns 25 through 36
329 260 168 104 98 50 29 18 11 2 6 3
»
MATLAB
» rand('state',0);
» X=randn(10000,1);
» N=hist(X)
N =
Figure No. 1
13 103 534 1491 2749 2803 1620 553 116 18
» N=hist(X,36)
N =
Columns 1 through 12
1 3 3 10 13 29 49 64 114 166 243 319
Columns 13 through 24
388 510 622 727 762 867 832 835 732 668 545 420
Columns 25 through 36
329 260 168 104 98 50 29 18 11 2 6 3
» figure(1);
» hist(X,36);
»
40
Matlab à la carte 02/09/2008
L’analyse de données
Analyse de FOURIER
MATLAB propose aussi des fonctions pour l’analyse
de FOURIER:
• ifft:
+2j k·l
N-1
Xl = 1 Y k e N , 0 l N-1
N k=0
MATLAB à la carte — module 2: « Programmation de base » 80 / 115
MATLAB
» X=[0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698]
X =
0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698
» Y=zeros(size(X));
» for k=0:7
for l=0:7
Y(k+1)=Y(k+1)+X(l+1)*exp(-2*j*pi*k*l/8);
end
end
» Y
Y =
5.9439 -1.1549 -0.1897 -0.1094 -0.0929 -0.1094 -0.1897 -1.1549
» Y=fft(X)
Y =
5.9439 -1.1549 -0.1897 -0.1094 -0.0929 -0.1094 -0.1897 -1.1549
» fftshift(Y) %% shift DC component to the center of the spectrum
ans =
-0.0929 -0.1094 -0.1897 -1.1549 5.9439 -1.1549 -0.1897 -0.1094
»
41
Matlab à la carte 02/09/2008
L’analyse de données
Analyse de FOURIER
MATLAB propose aussi des fonctions pour l’analyse
de FOURIER:
• ifft:
+2j k·l
N-1
Xl = 1 Y k e N , 0 l N-1
N k=0
MATLAB à la carte — module 2: « Programmation de base » 80 / 115
MATLAB
» X=[0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698]
X =
0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698
» Y=zeros(size(X));
» for k=0:7
for l=0:7
Y(k+1)=Y(k+1)+X(l+1)*exp(-2*j*pi*k*l/8);
end
end
» Y
Y =
5.9439 -1.1549 -0.1897 -0.1094 -0.0929 -0.1094 -0.1897 -1.1549
» Y=fft(X)
Y =
5.9439 -1.1549 -0.1897 -0.1094 -0.0929 -0.1094 -0.1897 -1.1549
» fftshift(Y) %% shift DC component to the center of the spectrum
ans =
-0.0929 -0.1094 -0.1897 -1.1549 5.9439 -1.1549 -0.1897 -0.1094
»
41
Matlab à la carte 02/09/2008
MATLAB
» Y
Y =
5.9439 -1.1549 -0.1897 -0.1094 -0.0929 -0.1094 -0.1897 -1.1549
» X=zeros(size(Y));
» for l=0:7
for k=0:7
X(l+1)=X(l+1)+Y(k+1)*exp(+2*j*pi*k*l/8);
end
end
» X/8
X =
0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698
» X=ifft(Y)
X =
0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698
»
L’analyse de données
Analyse de FOURIER
MATLAB propose des fonctions pour l’analyse de
FOURIER de vecteurs (traitement du signal):
fft Fast FOURIER Transform
ifft Inverse Fast FOURIER Transform
fftshift shift DC component
conv convolution
42
Matlab à la carte 02/09/2008
MATLAB
» Y
Y =
5.9439 -1.1549 -0.1897 -0.1094 -0.0929 -0.1094 -0.1897 -1.1549
» X=zeros(size(Y));
» for l=0:7
for k=0:7
X(l+1)=X(l+1)+Y(k+1)*exp(+2*j*pi*k*l/8);
end
end
» X/8
X =
0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698
» X=ifft(Y)
X =
0.3679 0.5698 0.7788 0.9394 1.0000 0.9394 0.7788 0.5698
»
L’analyse de données
Analyse de FOURIER
MATLAB propose des fonctions pour l’analyse de
FOURIER de vecteurs (traitement du signal):
fft Fast FOURIER Transform
ifft Inverse Fast FOURIER Transform
fftshift shift DC component
conv convolution
42
Matlab à la carte 02/09/2008
L’analyse de données
Analyse de FOURIER
MATLAB propose des fonctions pour l’analyse de
FOURIER de matrices (traitement d’image):
fft2 Fast FOURIER Transform
ifft2 Inverse Fast FOURIER Transform
fftshift shift DC component
conv2 convolution
43
Matlab à la carte 02/09/2008
L’analyse de données
Analyse de FOURIER
MATLAB propose des fonctions pour l’analyse de
FOURIER de matrices (traitement d’image):
fft2 Fast FOURIER Transform
ifft2 Inverse Fast FOURIER Transform
fftshift shift DC component
conv2 convolution
43
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.csv &');
»
data.csv
0.056135,0.199,0.79845,0.84464,0.6145
0.45688,0.60073,0.55478,0.87626,0.92483
0.76553,0.54282,0.14667,0.33207,0.61393
0.29249,0.25169,0.10701,0.1454,0.25638
0.96192,0.20162,0.52378,0.74407,0.039663
1,0.57562,0.2463,0.66189,0.62071
0.99909,0.51376,0.57163,0.40278,0.34349
0.74162,0.7477,0.33437,0.58503,0.024167
0.34978,0.60802,0.67871,0.55545,0.17139
0.79658,0.98964,0.069367,0.49412,0.61072
44
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.csv &');
»
data.csv
0.056135,0.199,0.79845,0.84464,0.6145
0.45688,0.60073,0.55478,0.87626,0.92483
0.76553,0.54282,0.14667,0.33207,0.61393
0.29249,0.25169,0.10701,0.1454,0.25638
0.96192,0.20162,0.52378,0.74407,0.039663
1,0.57562,0.2463,0.66189,0.62071
0.99909,0.51376,0.57163,0.40278,0.34349
0.74162,0.7477,0.33437,0.58503,0.024167
0.34978,0.60802,0.67871,0.55545,0.17139
0.79658,0.98964,0.069367,0.49412,0.61072
44
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.csv &');
» A = csvread('data.csv')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
»
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
» csvwrite('data.csv',A);
» dos('notepad.exe data.csv &');
»
45
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.csv &');
» A = csvread('data.csv')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
»
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
» csvwrite('data.csv',A);
» dos('notepad.exe data.csv &');
»
45
Matlab à la carte 02/09/2008
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
data.csv
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.056135,0.199,0.79845,0.84464,0.6145
0.2463 0.6619 0.6207
0.9991 0.5138 0.45688,0.60073,0.55478,0.87626,0.92483
0.5716 0.4028 0.3435
0.7416 0.7477 0.76553,0.54282,0.14667,0.33207,0.61393
0.3344 0.5850 0.0242
0.3498 0.6080 0.29249,0.25169,0.10701,0.1454,0.25638
0.6787 0.5555 0.1714
0.7966 0.9896 0.96192,0.20162,0.52378,0.74407,0.039663
0.0694 0.4941 0.6107
1,0.57562,0.2463,0.66189,0.62071
» csvwrite('data.csv',A);
0.99909,0.51376,0.57163,0.40278,0.34349
» dos('notepad.exe data.csv &');
» 0.74162,0.7477,0.33437,0.58503,0.024167
0.34978,0.60802,0.67871,0.55545,0.17139
0.79658,0.98964,0.069367,0.49412,0.61072
46
Matlab à la carte 02/09/2008
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
data.csv
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.056135,0.199,0.79845,0.84464,0.6145
0.2463 0.6619 0.6207
0.9991 0.5138 0.45688,0.60073,0.55478,0.87626,0.92483
0.5716 0.4028 0.3435
0.7416 0.7477 0.76553,0.54282,0.14667,0.33207,0.61393
0.3344 0.5850 0.0242
0.3498 0.6080 0.29249,0.25169,0.10701,0.1454,0.25638
0.6787 0.5555 0.1714
0.7966 0.9896 0.96192,0.20162,0.52378,0.74407,0.039663
0.0694 0.4941 0.6107
1,0.57562,0.2463,0.66189,0.62071
» csvwrite('data.csv',A);
0.99909,0.51376,0.57163,0.40278,0.34349
» dos('notepad.exe data.csv &');
» 0.74162,0.7477,0.33437,0.58503,0.024167
0.34978,0.60802,0.67871,0.55545,0.17139
0.79658,0.98964,0.069367,0.49412,0.61072
46
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.txt &');
»
data.txt
0.056135 0.199 0.79845 0.84464 0.6145
0.45688 0.60073 0.55478 0.87626 0.92483
0.76553 0.54282 0.14667 0.33207 0.61393
0.29249 0.25169 0.10701 0.1454 0.25638
0.96192 0.20162 0.52378 0.74407 0.039663
1 0.57562 0.2463 0.66189 0.62071
0.99909 0.51376 0.57163 0.40278 0.34349
0.74162 0.7477 0.33437 0.58503 0.024167
0.34978 0.60802 0.67871 0.55545 0.17139
0.79658 0.98964 0.069367 0.49412 0.61072
47
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.txt &');
»
data.txt
0.056135 0.199 0.79845 0.84464 0.6145
0.45688 0.60073 0.55478 0.87626 0.92483
0.76553 0.54282 0.14667 0.33207 0.61393
0.29249 0.25169 0.10701 0.1454 0.25638
0.96192 0.20162 0.52378 0.74407 0.039663
1 0.57562 0.2463 0.66189 0.62071
0.99909 0.51376 0.57163 0.40278 0.34349
0.74162 0.7477 0.33437 0.58503 0.024167
0.34978 0.60802 0.67871 0.55545 0.17139
0.79658 0.98964 0.069367 0.49412 0.61072
47
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.txt &');
» A = dlmread('data.txt','\t')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
»
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
» dlmwrite('data.txt',A,'\t');
» dos('notepad.exe data.txt &');
»
48
Matlab à la carte 02/09/2008
MATLAB
» dos('notepad.exe data.txt &');
» A = dlmread('data.txt','\t')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
»
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
» dlmwrite('data.txt',A,'\t');
» dos('notepad.exe data.txt &');
»
48
Matlab à la carte 02/09/2008
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
data.txt
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.056135
0.2463 0.199 0.6619 0.79845 0.84464
0.6207 0.6145
0.9991 0.5138 0.45688
0.5716 0.60073 0.4028 0.55478 0.87626
0.3435 0.92483
0.7416 0.7477 0.76553
0.3344 0.54282 0.5850 0.14667 0.33207
0.0242 0.61393
0.3498 0.6080 0.29249
0.6787 0.25169 0.5555 0.10701 0.1454
0.1714 0.25638
0.7966 0.9896 0.96192
0.0694 0.20162
0.4941 0.52378 0.74407
0.6107 0.039663
1
» dlmwrite('data.txt',A,'\t'); 0.57562 0.2463 0.66189 0.62071
0.99909
» dos('notepad.exe data.txt 0.51376 0.57163 0.40278
&'); 0.34349
» 0.74162 0.7477 0.33437 0.58503 0.024167
0.34978 0.60802 0.67871 0.55545 0.17139
0.79658 0.98964 0.069367 0.49412 0.61072
49
Matlab à la carte 02/09/2008
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
data.txt
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.056135
0.2463 0.199 0.6619 0.79845 0.84464
0.6207 0.6145
0.9991 0.5138 0.45688
0.5716 0.60073 0.4028 0.55478 0.87626
0.3435 0.92483
0.7416 0.7477 0.76553
0.3344 0.54282 0.5850 0.14667 0.33207
0.0242 0.61393
0.3498 0.6080 0.29249
0.6787 0.25169 0.5555 0.10701 0.1454
0.1714 0.25638
0.7966 0.9896 0.96192
0.0694 0.20162
0.4941 0.52378 0.74407
0.6107 0.039663
1
» dlmwrite('data.txt',A,'\t'); 0.57562 0.2463 0.66189 0.62071
0.99909
» dos('notepad.exe data.txt 0.51376 0.57163 0.40278
&'); 0.34349
» 0.74162 0.7477 0.33437 0.58503 0.024167
0.34978 0.60802 0.67871 0.55545 0.17139
0.79658 0.98964 0.069367 0.49412 0.61072
49
Matlab à la carte 02/09/2008
50
Matlab à la carte 02/09/2008
50
Matlab à la carte 02/09/2008
51
Matlab à la carte 02/09/2008
51
Matlab à la carte 02/09/2008
MATLAB
» [type, desc, fmt] = xlsfinfo('data.xls')
type = Microsoft Excel Spreadsheet
desc = 'Feuil1' 'Feuil2'
fmt = xlExcel8
»
data.xls Microsoft Excel
A B C D E F
1 t (s) z (m) v (m/s)
2 0,000 0,000 0,000
3 1,000 4,905 9,810
4 2,000 19,620 19,620
5 3,000 44,145 29,430
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 102 / 115
MATLAB
» A = xlsread('data.xls')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344
data.xls 0.5850 0.0242
Microsoft Excel
0.3498 0.6080 0.6787A
0.5555
B C
0.1714 D E F
0.7966 0.9896 0.0694 0.4941 0.6107
» 1 0,05613 0,19900 0,79845 0,84464 0,61450
2 0,45688 0,60073 0,55478 0,87626 0,92483
3 0,76553 0,54282 0,14667 0,33207 0,61393
4 0,29249 0,25169 0,10701 0,14540 0,25638
5 0,96192 0,20162 0,52378 0,74407 0,03966
6 1,00000 0,57562 0,24630 0,66189 0,62071
7 0,99909 0,51376 0,57163 0,40278 0,34349
8 0,74162 0,74770 0,33437 0,58503 0,02416
9 0,34978 0,60802 0,67871 0,55545 0,17139
10 0,79658 0,98964 0,06936 0,49412 0,61072
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 103 / 115
52
Matlab à la carte 02/09/2008
MATLAB
» [type, desc, fmt] = xlsfinfo('data.xls')
type = Microsoft Excel Spreadsheet
desc = 'Feuil1' 'Feuil2'
fmt = xlExcel8
»
data.xls Microsoft Excel
A B C D E F
1 t (s) z (m) v (m/s)
2 0,000 0,000 0,000
3 1,000 4,905 9,810
4 2,000 19,620 19,620
5 3,000 44,145 29,430
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 102 / 115
MATLAB
» A = xlsread('data.xls')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344
data.xls 0.5850 0.0242
Microsoft Excel
0.3498 0.6080 0.6787A
0.5555
B C
0.1714 D E F
0.7966 0.9896 0.0694 0.4941 0.6107
» 1 0,05613 0,19900 0,79845 0,84464 0,61450
2 0,45688 0,60073 0,55478 0,87626 0,92483
3 0,76553 0,54282 0,14667 0,33207 0,61393
4 0,29249 0,25169 0,10701 0,14540 0,25638
5 0,96192 0,20162 0,52378 0,74407 0,03966
6 1,00000 0,57562 0,24630 0,66189 0,62071
7 0,99909 0,51376 0,57163 0,40278 0,34349
8 0,74162 0,74770 0,33437 0,58503 0,02416
9 0,34978 0,60802 0,67871 0,55545 0,17139
10 0,79658 0,98964 0,06936 0,49412 0,61072
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 103 / 115
52
Matlab à la carte 02/09/2008
MATLAB
» A = xlsread('data.xls','Feuil1')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344
data.xls 0.5850 Microsoft
0.0242Excel
0.3498 0.6080 0.6787A
0.5555 C 0.1714
B D E F
0.7966 0.9896 0.0694 0.4941 0.6107
» 1 0,05613 0,19900 0,79845 0,84464 0,61450
2 0,45688 0,60073 0,55478 0,87626 0,92483
3 0,76553 0,54282 0,14667 0,33207 0,61393
4 0,29249 0,25169 0,10701 0,14540 0,25638
5 0,96192 0,20162 0,52378 0,74407 0,03966
6 1,00000 0,57562 0,24630 0,66189 0,62071
7 0,99909 0,51376 0,57163 0,40278 0,34349
8 0,74162 0,74770 0,33437 0,58503 0,02416
9 0,34978 0,60802 0,67871 0,55545 0,17139
10 0,79658 0,98964 0,06936 0,49412 0,61072
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 104 / 115
MATLAB
» num = xlsread('data.xls','Feuil2')
num =
0 0 0
1.0000 4.9050 9.8100
2.0000 19.6200 19.6200
3.0000 44.1450 29.4300
4.0000 78.4800 39.2400
5.0000 122.6250 49.0500
6.0000 176.5800 58.8600
7.0000 240.3450 68.6700
data.xls Microsoft Excel
8.0000 313.9200 78.4800 A B C D E F
1 t (s) z (m) v (m/s)
» t = num(:,1); 2 0,000 0,000 0,000
» z = num(:,2);
» v = num(:,3); 3 1,000 4,905 9,810
» 4 2,000 19,620 19,620
5 3,000 44,145 29,430
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 105 / 115
53
Matlab à la carte 02/09/2008
MATLAB
» A = xlsread('data.xls','Feuil1')
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344
data.xls 0.5850 Microsoft
0.0242Excel
0.3498 0.6080 0.6787A
0.5555 C 0.1714
B D E F
0.7966 0.9896 0.0694 0.4941 0.6107
» 1 0,05613 0,19900 0,79845 0,84464 0,61450
2 0,45688 0,60073 0,55478 0,87626 0,92483
3 0,76553 0,54282 0,14667 0,33207 0,61393
4 0,29249 0,25169 0,10701 0,14540 0,25638
5 0,96192 0,20162 0,52378 0,74407 0,03966
6 1,00000 0,57562 0,24630 0,66189 0,62071
7 0,99909 0,51376 0,57163 0,40278 0,34349
8 0,74162 0,74770 0,33437 0,58503 0,02416
9 0,34978 0,60802 0,67871 0,55545 0,17139
10 0,79658 0,98964 0,06936 0,49412 0,61072
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 104 / 115
MATLAB
» num = xlsread('data.xls','Feuil2')
num =
0 0 0
1.0000 4.9050 9.8100
2.0000 19.6200 19.6200
3.0000 44.1450 29.4300
4.0000 78.4800 39.2400
5.0000 122.6250 49.0500
6.0000 176.5800 58.8600
7.0000 240.3450 68.6700
data.xls Microsoft Excel
8.0000 313.9200 78.4800 A B C D E F
1 t (s) z (m) v (m/s)
» t = num(:,1); 2 0,000 0,000 0,000
» z = num(:,2);
» v = num(:,3); 3 1,000 4,905 9,810
» 4 2,000 19,620 19,620
5 3,000 44,145 29,430
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 105 / 115
53
Matlab à la carte 02/09/2008
MATLAB
» [num,txt] = xlsread('data.xls','Feuil2')
num =
0 0 0
1.0000 4.9050 9.8100
2.0000 19.6200 19.6200
3.0000 44.1450 29.4300
4.0000 78.4800 39.2400
5.0000 122.6250 49.0500
6.0000 176.5800 58.8600
7.0000 240.3450 68.6700
data.xls Microsoft Excel
8.0000 313.9200 78.4800 A B C D E F
txt =
't (s)' 'z (m)' 1 'v t(m/s)‘
(s) z (m) v (m/s)
» t = num(:,1); 2 0,000 0,000 0,000
» z = num(:,2);
» v = num(:,3); 3 1,000 4,905 9,810
» 4 2,000 19,620 19,620
5 3,000 44,145 29,430
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 106 / 115
MATLAB
» [num,txt] = xlsread('data.xls','Feuil2')
num =
0.4891 0 0
0.4891 4.9050 9.8100
0.4891 19.6200 19.6200
0.4891 44.1450 29.4300
0.4891 78.4800 39.2400
0.4891 122.6250 49.0500 format cellule
0.4891 176.5800 58.8600 HH:MM:SS
0.4891 240.3450 68.6700
data.xls Microsoft Excel
0.4891 313.9200 78.4800 A B C D E F
txt =
'heure' 'z (m)' 'v1 (m/s)‘
heure z (m) v (m/s)
» 2 11:44:15 0,000 0,000
3 11:44:16 4,905 9,810
4 11:44:17 19,620 19,620
5 11:44:18 44,145 29,430
6 11:44:19 78,480 39,240
7 11:44:20 122,625 49,050
8 11:44:21 176,580 58,860
9 11:44:22 240,345 68,670
10 11:44:23 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 107 / 115
54
Matlab à la carte 02/09/2008
MATLAB
» [num,txt] = xlsread('data.xls','Feuil2')
num =
0 0 0
1.0000 4.9050 9.8100
2.0000 19.6200 19.6200
3.0000 44.1450 29.4300
4.0000 78.4800 39.2400
5.0000 122.6250 49.0500
6.0000 176.5800 58.8600
7.0000 240.3450 68.6700
data.xls Microsoft Excel
8.0000 313.9200 78.4800 A B C D E F
txt =
't (s)' 'z (m)' 1 'v t(m/s)‘
(s) z (m) v (m/s)
» t = num(:,1); 2 0,000 0,000 0,000
» z = num(:,2);
» v = num(:,3); 3 1,000 4,905 9,810
» 4 2,000 19,620 19,620
5 3,000 44,145 29,430
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 106 / 115
MATLAB
» [num,txt] = xlsread('data.xls','Feuil2')
num =
0.4891 0 0
0.4891 4.9050 9.8100
0.4891 19.6200 19.6200
0.4891 44.1450 29.4300
0.4891 78.4800 39.2400
0.4891 122.6250 49.0500 format cellule
0.4891 176.5800 58.8600 HH:MM:SS
0.4891 240.3450 68.6700
data.xls Microsoft Excel
0.4891 313.9200 78.4800 A B C D E F
txt =
'heure' 'z (m)' 'v1 (m/s)‘
heure z (m) v (m/s)
» 2 11:44:15 0,000 0,000
3 11:44:16 4,905 9,810
4 11:44:17 19,620 19,620
5 11:44:18 44,145 29,430
6 11:44:19 78,480 39,240
7 11:44:20 122,625 49,050
8 11:44:21 176,580 58,860
9 11:44:22 240,345 68,670
10 11:44:23 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 107 / 115
54
Matlab à la carte 02/09/2008
MATLAB
» t = datestr(num(:,1),'HH:MM:SS')
t =
11:44:15
11:44:16
11:44:17
11:44:18
11:44:19
11:44:20 format cellule
11:44:21 HH:MM:SS
11:44:22 data.xls Microsoft Excel
11:44:23 A B C D E F
» z = num(:,2);
» v = num(:,3); 1 heure z (m) v (m/s)
» 2 11:44:15 0,000 0,000
3 11:44:16 4,905 9,810
4 11:44:17 19,620 19,620
5 11:44:18 44,145 29,430
6 11:44:19 78,480 39,240
7 11:44:20 122,625 49,050
8 11:44:21 176,580 58,860
9 11:44:22 240,345 68,670
10 11:44:23 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 108 / 115
MATLAB
» [num,txt] = xlsread('data.xls','Feuil2')
num =
0 0
4.9050 9.8100
19.6200 19.6200
44.1450 29.4300
78.4800 39.2400
122.6250 49.0500 format cellule
176.5800 58.8600 dd:mm:yyyy
240.3450 68.6700 data.xls Microsoft Excel
313.9200 78.4800 A B C D E F
txt =
'date' 1
'z (m)' date
'v (m/s)' z (m) v (m/s)
'15/06/2008' '' 2 15/06/2008 '' 0,000 0,000
'16/06/2008' '' ''
'17/06/2008' '' 3 16/06/2008 '' 4,905 9,810
'18/06/2008' '' 4 17/06/2008 '' 19,620 19,620
'19/06/2008' '' 5 18/06/2008 '' 44,145 29,430
'20/06/2008' '' ''
'21/06/2008' '' 6 19/06/2008 '' 78,480 39,240
'22/06/2008' '' 7 20/06/2008 '' 122,625 49,050
'23/06/2008' '' 8 21/06/2008 '' 176,580 58,860
»
9 22/06/2008 240,345 68,670
10 23/06/2008 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 109 / 115
55
Matlab à la carte 02/09/2008
MATLAB
» t = datestr(num(:,1),'HH:MM:SS')
t =
11:44:15
11:44:16
11:44:17
11:44:18
11:44:19
11:44:20 format cellule
11:44:21 HH:MM:SS
11:44:22 data.xls Microsoft Excel
11:44:23 A B C D E F
» z = num(:,2);
» v = num(:,3); 1 heure z (m) v (m/s)
» 2 11:44:15 0,000 0,000
3 11:44:16 4,905 9,810
4 11:44:17 19,620 19,620
5 11:44:18 44,145 29,430
6 11:44:19 78,480 39,240
7 11:44:20 122,625 49,050
8 11:44:21 176,580 58,860
9 11:44:22 240,345 68,670
10 11:44:23 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 108 / 115
MATLAB
» [num,txt] = xlsread('data.xls','Feuil2')
num =
0 0
4.9050 9.8100
19.6200 19.6200
44.1450 29.4300
78.4800 39.2400
122.6250 49.0500 format cellule
176.5800 58.8600 dd:mm:yyyy
240.3450 68.6700 data.xls Microsoft Excel
313.9200 78.4800 A B C D E F
txt =
'date' 1
'z (m)' date
'v (m/s)' z (m) v (m/s)
'15/06/2008' '' 2 15/06/2008 '' 0,000 0,000
'16/06/2008' '' ''
'17/06/2008' '' 3 16/06/2008 '' 4,905 9,810
'18/06/2008' '' 4 17/06/2008 '' 19,620 19,620
'19/06/2008' '' 5 18/06/2008 '' 44,145 29,430
'20/06/2008' '' ''
'21/06/2008' '' 6 19/06/2008 '' 78,480 39,240
'22/06/2008' '' 7 20/06/2008 '' 122,625 49,050
'23/06/2008' '' 8 21/06/2008 '' 176,580 58,860
»
9 22/06/2008 240,345 68,670
10 23/06/2008 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 109 / 115
55
Matlab à la carte 02/09/2008
MATLAB
» t = char(txt(2:end,1))
t =
15/06/2008
16/06/2008
17/06/2008
18/06/2008
19/06/2008
20/06/2008 format cellule
21/06/2008 dd:mm:yyyy
22/06/2008 data.xls Microsoft Excel
23/06/2008 A B C D E F
» z = num(:,2);
» v = num(:,3); 1 date z (m) v (m/s)
» 2 15/06/2008 0,000 0,000
3 16/06/2008 4,905 9,810
4 17/06/2008 19,620 19,620
5 18/06/2008 44,145 29,430
6 19/06/2008 78,480 39,240
7 20/06/2008 122,625 49,050
8 21/06/2008 176,580 58,860
9 22/06/2008 240,345 68,670
10 23/06/2008 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 110 / 115
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
» status = xlswrite('data.xls',A,'Feuil1')
status =
1
»
56
Matlab à la carte 02/09/2008
MATLAB
» t = char(txt(2:end,1))
t =
15/06/2008
16/06/2008
17/06/2008
18/06/2008
19/06/2008
20/06/2008 format cellule
21/06/2008 dd:mm:yyyy
22/06/2008 data.xls Microsoft Excel
23/06/2008 A B C D E F
» z = num(:,2);
» v = num(:,3); 1 date z (m) v (m/s)
» 2 15/06/2008 0,000 0,000
3 16/06/2008 4,905 9,810
4 17/06/2008 19,620 19,620
5 18/06/2008 44,145 29,430
6 19/06/2008 78,480 39,240
7 20/06/2008 122,625 49,050
8 21/06/2008 176,580 58,860
9 22/06/2008 240,345 68,670
10 23/06/2008 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 110 / 115
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344 0.5850 0.0242
0.3498 0.6080 0.6787 0.5555 0.1714
0.7966 0.9896 0.0694 0.4941 0.6107
» status = xlswrite('data.xls',A,'Feuil1')
status =
1
»
56
Matlab à la carte 02/09/2008
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344
data.txt 0.5850 Microsoft
0.0242Excel
0.3498 0.6080 0.6787A
0.5555 C 0.1714
B D E F
0.7966 0.9896 0.0694 0.4941 0.6107
1 0,05613 0,19900 0,79845 0,84464 0,61450
» status = xlswrite('data.xls',A,'Feuil1')
status = 2 0,45688 0,60073 0,55478 0,87626 0,92483
1
» 3 0,76553 0,54282 0,14667 0,33207 0,61393
4 0,29249 0,25169 0,10701 0,14540 0,25638
5 0,96192 0,20162 0,52378 0,74407 0,03966
6 1,00000 0,57562 0,24630 0,66189 0,62071
7 0,99909 0,51376 0,57163 0,40278 0,34349
8 0,74162 0,74770 0,33437 0,58503 0,02416
9 0,34978 0,60802 0,67871 0,55545 0,17139
10 0,79658 0,98964 0,06936 0,49412 0,61072
11
Feuil1
MATLAB à la carte — module 2: « Programmation de base » 112 / 115
MATLAB
» t = 0:1:8;
» z = 0.5*9.81*t.^2;
» v = 9.81*t;
» data = [{'t (sec)','z (m)','v (m/s)'}; num2cell([t(:),z(:),v(:)])];
data =
't (sec)' 'z (m)' 'v (m/s)'
[ 0] [ 0] [ 0]
[ 1] [ 4.9050] [ 9.8100]
[ 2] [ 19.6200] [19.6200]
[ 3] [ 44.1450] [29.4300]
[ 4] [ 78.4800] [39.2400]
[ 5] [122.6250] [49.0500]
[ 6] [176.5800] [58.8600]
[ 7] [240.3450] [68.6700]
[ 8] [313.9200] [78.4800]
» status = xlswrite('data.xls',data,'Feuil2')
status =
1
»
57
Matlab à la carte 02/09/2008
MATLAB
» A = rand(10,5)
A =
0.0561 0.1990 0.7985 0.8446 0.6145
0.4569 0.6007 0.5548 0.8763 0.9248
0.7655 0.5428 0.1467 0.3321 0.6139
0.2925 0.2517 0.1070 0.1454 0.2564
0.9619 0.2016 0.5238 0.7441 0.0397
1.0000 0.5756 0.2463 0.6619 0.6207
0.9991 0.5138 0.5716 0.4028 0.3435
0.7416 0.7477 0.3344
data.txt 0.5850 Microsoft
0.0242Excel
0.3498 0.6080 0.6787A
0.5555 C 0.1714
B D E F
0.7966 0.9896 0.0694 0.4941 0.6107
1 0,05613 0,19900 0,79845 0,84464 0,61450
» status = xlswrite('data.xls',A,'Feuil1')
status = 2 0,45688 0,60073 0,55478 0,87626 0,92483
1
» 3 0,76553 0,54282 0,14667 0,33207 0,61393
4 0,29249 0,25169 0,10701 0,14540 0,25638
5 0,96192 0,20162 0,52378 0,74407 0,03966
6 1,00000 0,57562 0,24630 0,66189 0,62071
7 0,99909 0,51376 0,57163 0,40278 0,34349
8 0,74162 0,74770 0,33437 0,58503 0,02416
9 0,34978 0,60802 0,67871 0,55545 0,17139
10 0,79658 0,98964 0,06936 0,49412 0,61072
11
Feuil1
MATLAB à la carte — module 2: « Programmation de base » 112 / 115
MATLAB
» t = 0:1:8;
» z = 0.5*9.81*t.^2;
» v = 9.81*t;
» data = [{'t (sec)','z (m)','v (m/s)'}; num2cell([t(:),z(:),v(:)])];
data =
't (sec)' 'z (m)' 'v (m/s)'
[ 0] [ 0] [ 0]
[ 1] [ 4.9050] [ 9.8100]
[ 2] [ 19.6200] [19.6200]
[ 3] [ 44.1450] [29.4300]
[ 4] [ 78.4800] [39.2400]
[ 5] [122.6250] [49.0500]
[ 6] [176.5800] [58.8600]
[ 7] [240.3450] [68.6700]
[ 8] [313.9200] [78.4800]
» status = xlswrite('data.xls',data,'Feuil2')
status =
1
»
57
Matlab à la carte 02/09/2008
MATLAB
» t = 0:1:8;
» z = 0.5*9.81*t.^2;
» v = 9.81*t;
» data = [{'t (sec)','z (m)','v (m/s)'}; num2cell([t(:),z(:),v(:)])];
data =
't (sec)' 'z (m)' 'v (m/s)'
[ 0] [ 0] [ 0]
[ 1] [ 4.9050] [ 9.8100]
[ 2] [ 19.6200] [19.6200]
[ 3] [ 44.1450]
data.xls [29.4300] Microsoft Excel
[ 4] [ 78.4800]A [39.2400]
B C D E F
[ 5] [122.6250] [49.0500]
[ 6] 1
[176.5800] t (s) z (m)
[58.8600] v (m/s)
[ 7] [240.3450]
2 0,000 [68.6700]
0,000 0,000
[ 8] [313.9200] [78.4800]
3 1,000 4,905
» status = xlswrite('data.xls',data,'Feuil2') 9,810
status = 4 2,000 19,620 19,620
1 5 3,000 44,145 29,430
»
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 114 / 115
58
Matlab à la carte 02/09/2008
MATLAB
» t = 0:1:8;
» z = 0.5*9.81*t.^2;
» v = 9.81*t;
» data = [{'t (sec)','z (m)','v (m/s)'}; num2cell([t(:),z(:),v(:)])];
data =
't (sec)' 'z (m)' 'v (m/s)'
[ 0] [ 0] [ 0]
[ 1] [ 4.9050] [ 9.8100]
[ 2] [ 19.6200] [19.6200]
[ 3] [ 44.1450]
data.xls [29.4300] Microsoft Excel
[ 4] [ 78.4800]A [39.2400]
B C D E F
[ 5] [122.6250] [49.0500]
[ 6] 1
[176.5800] t (s) z (m)
[58.8600] v (m/s)
[ 7] [240.3450]
2 0,000 [68.6700]
0,000 0,000
[ 8] [313.9200] [78.4800]
3 1,000 4,905
» status = xlswrite('data.xls',data,'Feuil2') 9,810
status = 4 2,000 19,620 19,620
1 5 3,000 44,145 29,430
»
6 4,000 78,480 39,240
7 5,000 122,625 49,050
8 6,000 176,580 58,860
9 7,000 240,345 68,670
10 8,000 313,920 78,480
11
Feuil1 Feuil2
MATLAB à la carte — module 2: « Programmation de base » 114 / 115
58