Matlab-like

publicité
Matlab-like
Nicolas SZAFRAN
UJF
2011-2012
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
1 / 37
Présentation
Plan
1
Présentation
2
Les bases
3
Utilisation avancée
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
2 / 37
Présentation
Matlab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
3 / 37
Présentation
Matlab
Logiciel de calcul numérique (6= calcul symbolique comme Maple)
créé à la fin des années 1970 autour des librairies Fortran EISPACK et
LINPACK (calcul matriciel) et réécrit en 2000 autour de la librairie
LAPACK.
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
3 / 37
Présentation
Matlab
Logiciel de calcul numérique (6= calcul symbolique comme Maple)
créé à la fin des années 1970 autour des librairies Fortran EISPACK et
LINPACK (calcul matriciel) et réécrit en 2000 autour de la librairie
LAPACK.
Logiciel commercial (payant) développé par The MathWorks. Licence
propriétaire.
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
3 / 37
Présentation
Matlab
Logiciel de calcul numérique (6= calcul symbolique comme Maple)
créé à la fin des années 1970 autour des librairies Fortran EISPACK et
LINPACK (calcul matriciel) et réécrit en 2000 autour de la librairie
LAPACK.
Logiciel commercial (payant) développé par The MathWorks. Licence
propriétaire.
Environnement : Windows, Linux, MacOS
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
3 / 37
Présentation
Matlab
Logiciel de calcul numérique (6= calcul symbolique comme Maple)
créé à la fin des années 1970 autour des librairies Fortran EISPACK et
LINPACK (calcul matriciel) et réécrit en 2000 autour de la librairie
LAPACK.
Logiciel commercial (payant) développé par The MathWorks. Licence
propriétaire.
Environnement : Windows, Linux, MacOS
Site Web : www.mathworks.fr
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
3 / 37
Présentation
Octave
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
4 / 37
Présentation
Octave
Logiciel de calcul numérique créé à la fin des années 1980 pour
faciliter l’utilisation de routines Fortran.
Compatibilité du langage avec Matlab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
4 / 37
Présentation
Octave
Logiciel de calcul numérique créé à la fin des années 1980 pour
faciliter l’utilisation de routines Fortran.
Compatibilité du langage avec Matlab
Logiciel libre (gratuit). Licence GNU.
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
4 / 37
Présentation
Octave
Logiciel de calcul numérique créé à la fin des années 1980 pour
faciliter l’utilisation de routines Fortran.
Compatibilité du langage avec Matlab
Logiciel libre (gratuit). Licence GNU.
Environnement : Linux, MacOS, Sun Solaris, Windows
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
4 / 37
Présentation
Octave
Logiciel de calcul numérique créé à la fin des années 1980 pour
faciliter l’utilisation de routines Fortran.
Compatibilité du langage avec Matlab
Logiciel libre (gratuit). Licence GNU.
Environnement : Linux, MacOS, Sun Solaris, Windows
Site Web : www.octave.org
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
4 / 37
Présentation
Scilab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
5 / 37
Présentation
Scilab
Logiciel de calcul numérique créé au début des années 2000 à l’INRIA.
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
5 / 37
Présentation
Scilab
Logiciel de calcul numérique créé au début des années 2000 à l’INRIA.
Logiciel libre (gratuit). Licence CeCILL (CEA-CNRS-INRIA logiciel
libre).
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
5 / 37
Présentation
Scilab
Logiciel de calcul numérique créé au début des années 2000 à l’INRIA.
Logiciel libre (gratuit). Licence CeCILL (CEA-CNRS-INRIA logiciel
libre).
Environnement : Linux, Windows, MacOS
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
5 / 37
Présentation
Scilab
Logiciel de calcul numérique créé au début des années 2000 à l’INRIA.
Logiciel libre (gratuit). Licence CeCILL (CEA-CNRS-INRIA logiciel
libre).
Environnement : Linux, Windows, MacOS
Site Web : www.scilab.org
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
5 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Matlab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
6 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Matlab
Les
de Matlab :
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
6 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Matlab
Les
de Matlab :
rapidité d’exécution, compilation possible du code Matlab
diversité des librairies
IDE intégré et performant
possibité de développement de GUI performante
assez répandu dans le monde industriel
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
6 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Matlab
Les
de Matlab :
rapidité d’exécution, compilation possible du code Matlab
diversité des librairies
IDE intégré et performant
possibité de développement de GUI performante
assez répandu dans le monde industriel
Les
de Matlab :
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
6 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Matlab
Les
de Matlab :
rapidité d’exécution, compilation possible du code Matlab
diversité des librairies
IDE intégré et performant
possibité de développement de GUI performante
assez répandu dans le monde industriel
Les
de Matlab :
logiciel payant
logiciel gourmant en ressources (disque et RAM)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
6 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Octave
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
7 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Octave
Les
de Octave :
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
7 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Octave
Les
de Octave :
compatibilité avec Matlab
logiciel gratuit
ajout de librairies supplémentaires
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
7 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Octave
Les
de Octave :
compatibilité avec Matlab
logiciel gratuit
ajout de librairies supplémentaires
Les
de Octave :
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
7 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Octave
Les
de Octave :
compatibilité avec Matlab
logiciel gratuit
ajout de librairies supplémentaires
Les
de Octave :
développement de GUI difficile
peu répandu
lenteur relative d’exécution
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
7 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Scilab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
8 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Scilab
Les
de Scilab :
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
8 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Scilab
Les
de Scilab :
diversité des librairies
IDE intégré
possibité de développement de GUI basique
assez répandu
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
8 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Scilab
Les
de Scilab :
diversité des librairies
IDE intégré
possibité de développement de GUI basique
assez répandu
Les
de Scilab :
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
8 / 37
Présentation
Comparatif Matlab-Octave-Scilab
Scilab
Les
de Scilab :
diversité des librairies
IDE intégré
possibité de développement de GUI basique
assez répandu
Les
de Scilab :
incompatibilité avec Matlab
lenteur relative d’exécution
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
8 / 37
Les bases
Plan
1
Présentation
2
Les bases
3
Utilisation avancée
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
9 / 37
Les bases
Interpréteur de commande
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
10 / 37
Les bases
Interpréteur de commande
Exécution à la volée (interpréteur) d’instructions via une fenêtre de
commande ou l’exécution de fichiers-scripts
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
10 / 37
Les bases
Interpréteur de commande
Exécution à la volée (interpréteur) d’instructions via une fenêtre de
commande ou l’exécution de fichiers-scripts
Exemple Octave
octave:1> a = 2*cos(pi/3)-1
octave:2> for i=2:4, i*i, end
a =
ans =
ans =
ans =
2.22044604925031e-16
Nicolas SZAFRAN (UJF)
Matlab-like
4
9
16
2011-2012
10 / 37
Les bases
Interpréteur de commande
Exécution à la volée (interpréteur) d’instructions via une fenêtre de
commande ou l’exécution de fichiers-scripts
Exemple Scilab
--> a = 2*cos(%pi/3)-1
--> for i=2:4, i*i, end
a
ans =
4.
ans =
9.
ans =
16.
=
2.220446049D-16
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
11 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
12 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
Nicolas SZAFRAN (UJF)
2 3
5 −1
Matlab-like
2011-2012
12 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
2 3
5 −1
A = [ 2 3 ; 5 -1]
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
12 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
2 3
5 −1
A = [ 2 3 ; 5 -1]
Exemple : le vecteur-colonne complexe b =
Nicolas SZAFRAN (UJF)
Matlab-like
1+i
2
2011-2012
12 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
2 3
5 −1
A = [ 2 3 ; 5 -1]
Exemple : le vecteur-colonne complexe b =
1+i
2
b = [ 1+%i ; 2] // codage Scilab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
12 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
13 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
Nicolas SZAFRAN (UJF)
2 3
5 −1
Matlab-like
2011-2012
13 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
2 3
5 −1
A = [ 2 3 ; 5 -1]
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
13 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
2 3
5 −1
A = [ 2 3 ; 5 -1]
Exemple : le vecteur-colonne complexe b =
Nicolas SZAFRAN (UJF)
Matlab-like
1+i
2
2011-2012
13 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : la matrice A =
2 3
5 −1
A = [ 2 3 ; 5 -1]
Exemple : le vecteur-colonne complexe b =
1+i
2
b = [ 1+i ; 2] % codage Octave
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
13 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
14 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : le vecteur-ligne c =
Nicolas SZAFRAN (UJF)
3 8 13 18 23
Matlab-like
2011-2012
14 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : le vecteur-ligne c =
3 8 13 18 23
c = 3:5:23
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
14 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : le vecteur-ligne c =
3 8 13 18 23
c = 3:5:23
Vecteur-ligne (resp. vecteur-colonne) ≡
Matrice avec une seule ligne (resp. une seule colonne)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
14 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
15 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : le scalaire complexe d = e i π/4
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
15 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : le scalaire complexe d = e i π/4
d = exp(%i * %pi / 4) // codage Scilab
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
15 / 37
Les bases
Objets de base
Matrice numérique (réelle ou complexe)
Exemple : le scalaire complexe d = e i π/4
d = exp(%i * %pi / 4) // codage Scilab
Scalaire ≡
Matrice avec une seule ligne et une seule colonne
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
15 / 37
Les bases
Opérations de base
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
16 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
16 / 37
Les bases
Opérations de base
Opérations au niveau
matriciel
2 3
−2 1
Exemple : A =
,B=
, C = A + B, D = A · B
1 −5
2 3
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
16 / 37
Les bases
Opérations de base
Opérations au niveau
matriciel
2 3
−2 1
Exemple : A =
,B=
, C = A + B, D = A · B
1 −5
2 3
A=[2 3;1 -5];B=[-2 1;2 3]; C=A+B, D=A*B
C =
0
4
3 -2
D =
2
11
-12 -14
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
16 / 37
Les bases
Opérations de base
Opérations au niveau
matriciel
2 3
−2 1
Exemple : A =
,B=
, C = A + B, D = A · B
1 −5
2 3
A=[2 3;1 -5];B=[-2 1;2 3]; C=A+B, D=A*B
C =
0
4
3 -2
D =
2
11
-12 -14
Les dimensions des opérandes doivent être compatibles
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
16 / 37
Les bases
Opérations de base
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
17 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
possibilité d’opérations élément par élément
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
17 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
possibilité d’opérations élément par élément
2 3
−2 1
Exemple : A =
,B=
1 −5
2 3
D = A · B et E = (Ei ,j ) = (Ai ,j × Bi ,j )
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
17 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
possibilité d’opérations élément par élément
2 3
−2 1
Exemple : A =
,B=
1 −5
2 3
D = A · B et E = (Ei ,j ) = (Ai ,j × Bi ,j )
A=[2 3;1 -5];B=[-2 1;2 3]; D = A * B; E = A .* B
D =
2
11
-12 -14
E =
-4
3
2 -15
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
17 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
possibilité d’opérations élément par élément
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
18 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
possibilité d’opérations élément par élément
−2 1
Exemple : B =
2 3
D = B · B = B 2 et E = (Ei ,j ) = (Bi2,j )
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
18 / 37
Les bases
Opérations de base
Opérations au niveau matriciel
possibilité d’opérations élément par élément
−2 1
Exemple : B =
2 3
D = B · B = B 2 et E = (Ei ,j ) = (Bi2,j )
B = [-2 1;2 3]; D = B ^ 2; E = B .^ 2
D =
6
1
2 14
E =
4
1
4
9
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
18 / 37
Les bases
Opérations de base
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
19 / 37
Les bases
Opérations de base
Arithmétique :
+
-
/
*
^
Nicolas SZAFRAN (UJF)
./
.*
.^
Matlab-like
2011-2012
19 / 37
Les bases
Opérations de base
Arithmétique :
+
-
/
*
^
./
.*
.^
Booléen :
<
>
<=
>=
==
Nicolas SZAFRAN (UJF)
~=
Matlab-like
2011-2012
19 / 37
Les bases
Opérations de base
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
20 / 37
Les bases
Opérations de base
Transposée : ’ 

1 2
Exemple : A =  3 4  et B = t A = AT = transpose(A)
5 6
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
20 / 37
Les bases
Opérations de base
Transposée : ’ 

1 2
Exemple : A =  3 4  et B = t A = AT = transpose(A)
5 6
--> A = [1 2;3 4;5 6], B = A’
A =
1
2
3
4
5
6
B =
1
2
3
4
5
6
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
20 / 37
Les bases
Fonctions de base
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
21 / 37
Les bases
Fonctions de base
Fonctions mathématiques
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
22 / 37
Les bases
Fonctions de base
Fonctions mathématiques
Fonctions usuelles :
trigonométriques : cos, sin, tan, acos, asin, atan
logarithmiques : log, log10, log2, exp
hyperboliques : sinh, cosh, tanh, asinh, acosh, atanh
numériques : abs, ceil, floor, round, min, max
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
22 / 37
Les bases
Fonctions de base
Fonctions mathématiques
Fonctions usuelles :
trigonométriques : cos, sin, tan, acos, asin, atan
logarithmiques : log, log10, log2, exp
hyperboliques : sinh, cosh, tanh, asinh, acosh, atanh
numériques : abs, ceil, floor, round, min, max
s’applique à une matrice élément par élément
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
22 / 37
Les bases
Fonctions de base
Fonctions mathématiques
Fonctions usuelles :
trigonométriques : cos, sin, tan, acos, asin, atan
logarithmiques : log, log10, log2, exp
hyperboliques : sinh, cosh, tanh, asinh, acosh, atanh
numériques : abs, ceil, floor, round, min, max
s’applique à une matrice élément par élément
Exemple
--> A = [1.2 1.5 1.8 2.3 2.6 3.1]; B = round(A)
B =
1
2
2
2
3
3
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
22 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
linspace : opérateur pour créer un vecteur-ligne de valeurs équiréparties
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
23 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
linspace : opérateur pour créer un vecteur-ligne de valeurs équiréparties
Exemple
--> i = linspace(3,10,8)
i =
3
4
5
6
7
8
Nicolas SZAFRAN (UJF)
9
10
Matlab-like
2011-2012
23 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
linspace : opérateur pour créer un vecteur-ligne de valeurs équiréparties
Exemple
--> i = linspace(3,10,8)
i =
3
4
5
6
7
8
9
--> t = linspace(2,3,6)
t =
2.0000
2.2000
2.4000
Nicolas SZAFRAN (UJF)
10
2.6000
Matlab-like
2.8000
3.0000
2011-2012
23 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
linspace : opérateur pour créer un vecteur-ligne de valeurs équiréparties
Exemple
--> i = linspace(3,10,8)
i =
3
4
5
6
7
8
9
--> t = linspace(2,3,6)
t =
2.0000
2.2000
2.4000
2.6000
on peut aussi utiliser l’opérateur
Nicolas SZAFRAN (UJF)
10
2.8000
3.0000
:
Matlab-like
2011-2012
23 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
zeros : crée une matrice composée de 0
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
24 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
zeros : crée une matrice composée de 0
Exemple
--> A = zeros(2,4)
A =
0
0
0
0
0
0
0
0
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
24 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
ones : crée une matrice composée de 1
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
25 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
ones : crée une matrice composée de 1
Exemple
--> A = ones(2,4)
A =
1
1
1
1
1
1
1
1
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
25 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
eye : crée une matrice identité
Exemple
--> A = eye(2)
A =
1
0
0
1
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
26 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
rand : crée une matrice composée de valeurs aléatoires entre 0 et 1
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
27 / 37
Les bases
Fonctions de base
Fonctions sur des matrices
rand : crée une matrice composée de valeurs aléatoires entre 0 et 1
Exemple
--> A = rand(2,3)
A =
0.546419
0.047637
0.718978
0.187824
Nicolas SZAFRAN (UJF)
0.182567
0.659542
Matlab-like
2011-2012
27 / 37
Les bases
Programmation
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
28 / 37
Les bases
Programmation
définition des variables ”à la volée”
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
28 / 37
Les bases
Programmation
définition des variables ”à la volée”
instruction d’affectation (opérateur =)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
28 / 37
Les bases
Programmation
définition des variables ”à la volée”
instruction d’affectation (opérateur =)
instructions de contrôle :
if ... then ... else ... end
while ... end
for ... end
continue
break
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
28 / 37
Les bases
Programmation
définition des variables ”à la volée”
instruction d’affectation (opérateur =)
instructions de contrôle :
if ... then ... else ... end
while ... end
for ... end
continue
break
structuration à l’aide de routines
function ... endfunction
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
28 / 37
Les bases
Programmation
définition des variables ”à la volée”
instruction d’affectation (opérateur =)
instructions de contrôle :
if ... then ... else ... end
while ... end
for ... end
continue
break
structuration à l’aide de routines
function ... endfunction
écriture de programme sous forme de fichier(s)
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
28 / 37
Les bases
Fonctions
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
29 / 37
Les bases
Fonctions
function [liste arg out] id function (liste arg in)
instructions
endfunction
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
29 / 37
Les bases
Fonctions
function [liste arg out] id function (liste arg in)
instructions
endfunction
possibilité de listes d’arguments (en entrée et en sortie) de taille
variable
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
29 / 37
Les bases
Fonctions
function [liste arg out] id function (liste arg in)
instructions
endfunction
possibilité de listes d’arguments (en entrée et en sortie) de taille
variable
argument(s) en entrée passé(s) par valeur
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
29 / 37
Les bases
Graphique
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
30 / 37
Les bases
Graphique
Tracé en 2D et 3D.
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
30 / 37
Les bases
Graphique
Tracé en 2D et 3D.
plot
Nicolas SZAFRAN (UJF)
mesh
Matlab-like
2011-2012
30 / 37
Utilisation avancée
Plan
1
Présentation
2
Les bases
3
Utilisation avancée
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
31 / 37
Utilisation avancée
Utilisation de types non numériques
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
32 / 37
Utilisation avancée
Utilisation de types non numériques
type booléen
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
32 / 37
Utilisation avancée
Utilisation de types non numériques
type booléen
type fonction
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
32 / 37
Utilisation avancée
Utilisation de types non numériques
type booléen
type fonction
type chaı̂ne de caractères
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
32 / 37
Utilisation avancée
Utilisation de types non numériques
type booléen
type fonction
type chaı̂ne de caractères
types structurés : struct, list, tlist, cell
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
32 / 37
Utilisation avancée
Fonctions spécialisées
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
traitement du signal
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
traitement du signal
statistique
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
traitement du signal
statistique
interpolation, approximation
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
traitement du signal
statistique
interpolation, approximation
équa. diff., intégration
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
traitement du signal
statistique
interpolation, approximation
équa. diff., intégration
optimisation
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Fonctions spécialisées
Routines et fonctions disponibles dans le logiciel ou dans des librairies
séparées
algèbre linéaire
traitement du signal
statistique
interpolation, approximation
équa. diff., intégration
optimisation
...
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
33 / 37
Utilisation avancée
Gestion des entrées/sorties
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
34 / 37
Utilisation avancée
Gestion des entrées/sorties
lecture au clavier
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
34 / 37
Utilisation avancée
Gestion des entrées/sorties
lecture au clavier
écriture à l’écran
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
34 / 37
Utilisation avancée
Gestion des entrées/sorties
lecture au clavier
écriture à l’écran
E/S sur fichiers
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
34 / 37
Utilisation avancée
Programmation avancée
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
35 / 37
Utilisation avancée
Programmation avancée
structuration sous forme de fichiers séparés
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
35 / 37
Utilisation avancée
Programmation avancée
structuration sous forme de fichiers séparés
variables locales et globales
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
35 / 37
Utilisation avancée
Programmation avancée
structuration sous forme de fichiers séparés
variables locales et globales
test des arguments en entrée/sortie d’une routine
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
35 / 37
Utilisation avancée
Graphique avancé
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
36 / 37
Utilisation avancée
Graphique avancé
paramètrage des tracés
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
36 / 37
Utilisation avancée
Graphique avancé
paramètrage des tracés
tracé multiple
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
36 / 37
Utilisation avancée
Graphique avancé
paramètrage des tracés
tracé multiple
gestion des objets graphiques
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
36 / 37
Utilisation avancée
Interfaçage avec d’autres langages
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
37 / 37
Utilisation avancée
Interfaçage avec d’autres langages
appel de programmes externes
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
37 / 37
Utilisation avancée
Interfaçage avec d’autres langages
appel de programmes externes
interfaçage avec des modules compilés et écrits en C, Fortran, C++
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
37 / 37
Utilisation avancée
Interfaçage avec d’autres langages
appel de programmes externes
interfaçage avec des modules compilés et écrits en C, Fortran, C++
création de nouvelles routines à l’aide de modules compilés
Nicolas SZAFRAN (UJF)
Matlab-like
2011-2012
37 / 37
Téléchargement