Matlab-like
Nicolas SZAFRAN
UJF
2011-2012
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 1 / 37
Presentation
Plan
1 Presentation
2 Les bases
3 Utilisation avancee
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 2 / 37
Presentation
Matlab
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 3 / 37
Presentation
Matlab
Logiciel de calcul numerique (6= calcul symbolique comme Maple)cree a la fin des annees 1970 autour des librairies Fortran EISPACK etLINPACK (calcul matriciel) et reecrit en 2000 autour de la librairieLAPACK.
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 3 / 37
Presentation
Matlab
Logiciel de calcul numerique (6= calcul symbolique comme Maple)cree a la fin des annees 1970 autour des librairies Fortran EISPACK etLINPACK (calcul matriciel) et reecrit en 2000 autour de la librairieLAPACK.
Logiciel commercial (payant) developpe par The MathWorks. Licenceproprietaire.
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 3 / 37
Presentation
Matlab
Logiciel de calcul numerique (6= calcul symbolique comme Maple)cree a la fin des annees 1970 autour des librairies Fortran EISPACK etLINPACK (calcul matriciel) et reecrit en 2000 autour de la librairieLAPACK.
Logiciel commercial (payant) developpe par The MathWorks. Licenceproprietaire.
Environnement : Windows, Linux, MacOS
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 3 / 37
Presentation
Matlab
Logiciel de calcul numerique (6= calcul symbolique comme Maple)cree a la fin des annees 1970 autour des librairies Fortran EISPACK etLINPACK (calcul matriciel) et reecrit en 2000 autour de la librairieLAPACK.
Logiciel commercial (payant) developpe par The MathWorks. Licenceproprietaire.
Environnement : Windows, Linux, MacOS
Site Web : www.mathworks.fr
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 3 / 37
Presentation
Octave
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 4 / 37
Presentation
Octave
Logiciel de calcul numerique cree a la fin des annees 1980 pourfaciliter l’utilisation de routines Fortran.Compatibilite du langage avec Matlab
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 4 / 37
Presentation
Octave
Logiciel de calcul numerique cree a la fin des annees 1980 pourfaciliter l’utilisation de routines Fortran.Compatibilite du langage avec Matlab
Logiciel libre (gratuit). Licence GNU.
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 4 / 37
Presentation
Octave
Logiciel de calcul numerique cree a la fin des annees 1980 pourfaciliter l’utilisation de routines Fortran.Compatibilite du langage avec Matlab
Logiciel libre (gratuit). Licence GNU.
Environnement : Linux, MacOS, Sun Solaris, Windows
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 4 / 37
Presentation
Octave
Logiciel de calcul numerique cree a la fin des annees 1980 pourfaciliter l’utilisation de routines Fortran.Compatibilite 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
Presentation
Scilab
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 5 / 37
Presentation
Scilab
Logiciel de calcul numerique cree au debut des annees 2000 a l’INRIA.
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 5 / 37
Presentation
Scilab
Logiciel de calcul numerique cree au debut des annees 2000 a l’INRIA.
Logiciel libre (gratuit). Licence CeCILL (CEA-CNRS-INRIA logiciellibre).
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 5 / 37
Presentation
Scilab
Logiciel de calcul numerique cree au debut des annees 2000 a l’INRIA.
Logiciel libre (gratuit). Licence CeCILL (CEA-CNRS-INRIA logiciellibre).
Environnement : Linux, Windows, MacOS
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 5 / 37
Presentation
Scilab
Logiciel de calcul numerique cree au debut des annees 2000 a l’INRIA.
Logiciel libre (gratuit). Licence CeCILL (CEA-CNRS-INRIA logiciellibre).
Environnement : Linux, Windows, MacOS
Site Web : www.scilab.org
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 5 / 37
Presentation
Comparatif Matlab-Octave-ScilabMatlab
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 6 / 37
Presentation
Comparatif Matlab-Octave-ScilabMatlab
Les de Matlab :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 6 / 37
Presentation
Comparatif Matlab-Octave-ScilabMatlab
Les de Matlab :
rapidite d’execution, compilation possible du code Matlab
diversite des librairies
IDE integre et performant
possibite de developpement de GUI performante
assez repandu dans le monde industriel
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 6 / 37
Presentation
Comparatif Matlab-Octave-ScilabMatlab
Les de Matlab :
rapidite d’execution, compilation possible du code Matlab
diversite des librairies
IDE integre et performant
possibite de developpement de GUI performante
assez repandu dans le monde industriel
Les de Matlab :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 6 / 37
Presentation
Comparatif Matlab-Octave-ScilabMatlab
Les de Matlab :
rapidite d’execution, compilation possible du code Matlab
diversite des librairies
IDE integre et performant
possibite de developpement de GUI performante
assez repandu 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
Presentation
Comparatif Matlab-Octave-ScilabOctave
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 7 / 37
Presentation
Comparatif Matlab-Octave-ScilabOctave
Les de Octave :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 7 / 37
Presentation
Comparatif Matlab-Octave-ScilabOctave
Les de Octave :
compatibilite avec Matlab
logiciel gratuit
ajout de librairies supplementaires
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 7 / 37
Presentation
Comparatif Matlab-Octave-ScilabOctave
Les de Octave :
compatibilite avec Matlab
logiciel gratuit
ajout de librairies supplementaires
Les de Octave :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 7 / 37
Presentation
Comparatif Matlab-Octave-ScilabOctave
Les de Octave :
compatibilite avec Matlab
logiciel gratuit
ajout de librairies supplementaires
Les de Octave :
developpement de GUI difficile
peu repandu
lenteur relative d’execution
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 7 / 37
Presentation
Comparatif Matlab-Octave-ScilabScilab
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 8 / 37
Presentation
Comparatif Matlab-Octave-ScilabScilab
Les de Scilab :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 8 / 37
Presentation
Comparatif Matlab-Octave-ScilabScilab
Les de Scilab :
diversite des librairies
IDE integre
possibite de developpement de GUI basique
assez repandu
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 8 / 37
Presentation
Comparatif Matlab-Octave-ScilabScilab
Les de Scilab :
diversite des librairies
IDE integre
possibite de developpement de GUI basique
assez repandu
Les de Scilab :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 8 / 37
Presentation
Comparatif Matlab-Octave-ScilabScilab
Les de Scilab :
diversite des librairies
IDE integre
possibite de developpement de GUI basique
assez repandu
Les de Scilab :
incompatibilite avec Matlab
lenteur relative d’execution
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 8 / 37
Les bases
Plan
1 Presentation
2 Les bases
3 Utilisation avancee
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 9 / 37
Les bases
Interpreteur de commande
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 10 / 37
Les bases
Interpreteur de commande
Execution a la volee (interpreteur) d’instructions via une fenetre decommande ou l’execution de fichiers-scripts
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 10 / 37
Les bases
Interpreteur de commande
Execution a la volee (interpreteur) d’instructions via une fenetre decommande ou l’execution de fichiers-scripts
Exemple Octave
octave:1> a = 2*cos(pi/3)-1
a = 2.22044604925031e-16
octave:2> for i=2:4, i*i, end
ans = 4
ans = 9
ans = 16
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 10 / 37
Les bases
Interpreteur de commande
Execution a la volee (interpreteur) d’instructions via une fenetre decommande ou l’execution de fichiers-scripts
Exemple Scilab
--> a = 2*cos(%pi/3)-1
a =
2.220446049D-16
--> for i=2:4, i*i, end
ans =
4.
ans =
9.
ans =
16.
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 11 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 12 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −1
)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 12 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −1
)
A = [ 2 3 ; 5 -1]
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 12 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −1
)
A = [ 2 3 ; 5 -1]
Exemple : le vecteur-colonne complexe b =
(
1 + i
2
)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 12 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −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 baseMatrice numerique (reelle ou complexe)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 13 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −1
)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 13 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −1
)
A = [ 2 3 ; 5 -1]
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 13 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −1
)
A = [ 2 3 ; 5 -1]
Exemple : le vecteur-colonne complexe b =
(
1 + i
2
)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 13 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : la matrice A =
(
2 35 −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 baseMatrice numerique (reelle ou complexe)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 14 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : le vecteur-ligne c =(
3 8 13 18 23)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 14 / 37
Les bases
Objets de baseMatrice numerique (reelle 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 baseMatrice numerique (reelle 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 baseMatrice numerique (reelle ou complexe)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 15 / 37
Les bases
Objets de baseMatrice numerique (reelle ou complexe)
Exemple : le scalaire complexe d = e iπ/4
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 15 / 37
Les bases
Objets de baseMatrice numerique (reelle 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 baseMatrice numerique (reelle 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
Operations de base
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 16 / 37
Les bases
Operations de base
Operations au niveau matriciel
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 16 / 37
Les bases
Operations de base
Operations au niveau matriciel
Exemple : A =
(
2 31 −5
)
, B =
(
−2 12 3
)
, C = A+ B , D = A · B
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 16 / 37
Les bases
Operations de base
Operations au niveau matriciel
Exemple : A =
(
2 31 −5
)
, B =
(
−2 12 3
)
, C = A+ B , D = A · B
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
Operations de base
Operations au niveau matriciel
Exemple : A =
(
2 31 −5
)
, B =
(
−2 12 3
)
, C = A+ B , D = A · B
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 operandes doivent etre compatibles
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 16 / 37
Les bases
Operations de base
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 17 / 37
Les bases
Operations de base
Operations au niveau matricielpossibilite d’operations element par element
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 17 / 37
Les bases
Operations de base
Operations au niveau matricielpossibilite d’operations element par element
Exemple : A =
(
2 31 −5
)
, B =
(
−2 12 3
)
D = A · B et E = (Ei ,j) = (Ai ,j × Bi ,j)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 17 / 37
Les bases
Operations de base
Operations au niveau matricielpossibilite d’operations element par element
Exemple : A =
(
2 31 −5
)
, B =
(
−2 12 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
Operations de base
Operations au niveau matricielpossibilite d’operations element par element
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 18 / 37
Les bases
Operations de base
Operations au niveau matricielpossibilite d’operations element par element
Exemple : B =
(
−2 12 3
)
D = B · B = B2 et E = (Ei ,j) = (B2i ,j)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 18 / 37
Les bases
Operations de base
Operations au niveau matricielpossibilite d’operations element par element
Exemple : B =
(
−2 12 3
)
D = B · B = B2 et E = (Ei ,j) = (B2i ,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
Operations de base
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 19 / 37
Les bases
Operations de base
Arithmetique :
+ - / * ^ ./ .* .^
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 19 / 37
Les bases
Operations de base
Arithmetique :
+ - / * ^ ./ .* .^
Booleen :
< > <= >= == ~=
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 19 / 37
Les bases
Operations de base
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 20 / 37
Les bases
Operations de base
Transposee : ’
Exemple : A =
1 23 45 6
et B = tA = AT = transpose(A)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 20 / 37
Les bases
Operations de base
Transposee : ’
Exemple : A =
1 23 45 6
et B = tA = AT = transpose(A)
--> A = [1 2;3 4;5 6], B = A’
A =
1 2
3 4
5 6
B =
1 3 5
2 4 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 baseFonctions mathematiques
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 22 / 37
Les bases
Fonctions de baseFonctions mathematiques
Fonctions usuelles :
trigonometriques : cos, sin, tan, acos, asin, atan
logarithmiques : log, log10, log2, exp
hyperboliques : sinh, cosh, tanh, asinh, acosh, atanh
numeriques : abs, ceil, floor, round, min, max
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 22 / 37
Les bases
Fonctions de baseFonctions mathematiques
Fonctions usuelles :
trigonometriques : cos, sin, tan, acos, asin, atan
logarithmiques : log, log10, log2, exp
hyperboliques : sinh, cosh, tanh, asinh, acosh, atanh
numeriques : abs, ceil, floor, round, min, max
s’applique a une matrice element par element
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 22 / 37
Les bases
Fonctions de baseFonctions mathematiques
Fonctions usuelles :
trigonometriques : cos, sin, tan, acos, asin, atan
logarithmiques : log, log10, log2, exp
hyperboliques : sinh, cosh, tanh, asinh, acosh, atanh
numeriques : abs, ceil, floor, round, min, max
s’applique a une matrice element par elementExemple
--> 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 baseFonctions sur des matrices
linspace : operateur pour creer un vecteur-ligne de valeurs equireparties
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 23 / 37
Les bases
Fonctions de baseFonctions sur des matrices
linspace : operateur pour creer un vecteur-ligne de valeurs equireparties
Exemple
--> i = linspace(3,10,8)i =
3 4 5 6 7 8 9 10
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 23 / 37
Les bases
Fonctions de baseFonctions sur des matrices
linspace : operateur pour creer un vecteur-ligne de valeurs equireparties
Exemple
--> i = linspace(3,10,8)i =
3 4 5 6 7 8 9 10
--> t = linspace(2,3,6)
t =
2.0000 2.2000 2.4000 2.6000 2.8000 3.0000
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 23 / 37
Les bases
Fonctions de baseFonctions sur des matrices
linspace : operateur pour creer un vecteur-ligne de valeurs equireparties
Exemple
--> i = linspace(3,10,8)i =
3 4 5 6 7 8 9 10
--> t = linspace(2,3,6)
t =
2.0000 2.2000 2.4000 2.6000 2.8000 3.0000
on peut aussi utiliser l’operateur :
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 23 / 37
Les bases
Fonctions de baseFonctions sur des matrices
zeros : cree une matrice composee de 0
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 24 / 37
Les bases
Fonctions de baseFonctions sur des matrices
zeros : cree une matrice composee 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 baseFonctions sur des matrices
ones : cree une matrice composee de 1
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 25 / 37
Les bases
Fonctions de baseFonctions sur des matrices
ones : cree une matrice composee 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 baseFonctions sur des matrices
eye : cree une matrice identite
Exemple
--> A = eye(2)A =
1 0
0 1
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 26 / 37
Les bases
Fonctions de baseFonctions sur des matrices
rand : cree une matrice composee de valeurs aleatoires entre 0 et 1
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 27 / 37
Les bases
Fonctions de baseFonctions sur des matrices
rand : cree une matrice composee de valeurs aleatoires entre 0 et 1
Exemple
--> A = rand(2,3)A =
0.546419 0.047637 0.182567
0.718978 0.187824 0.659542
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 27 / 37
Les bases
Programmation
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 28 / 37
Les bases
Programmation
definition des variables ”a la volee”
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 28 / 37
Les bases
Programmation
definition des variables ”a la volee”
instruction d’affectation (operateur =)
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 28 / 37
Les bases
Programmation
definition des variables ”a la volee”
instruction d’affectation (operateur =)
instructions de controle :if ... then ... else ... end
while ... end
for ... end
continue
break
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 28 / 37
Les bases
Programmation
definition des variables ”a la volee”
instruction d’affectation (operateur =)
instructions de controle :if ... then ... else ... end
while ... end
for ... end
continue
break
structuration a l’aide de routinesfunction ... endfunction
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 28 / 37
Les bases
Programmation
definition des variables ”a la volee”
instruction d’affectation (operateur =)
instructions de controle :if ... then ... else ... end
while ... end
for ... end
continue
break
structuration a l’aide de routinesfunction ... endfunction
ecriture 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
possibilite de listes d’arguments (en entree et en sortie) de taillevariable
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 29 / 37
Les bases
Fonctions
function [liste arg out] id function (liste arg in)
instructions
endfunction
possibilite de listes d’arguments (en entree et en sortie) de taillevariable
argument(s) en entree passe(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
Trace en 2D et 3D.
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 30 / 37
Les bases
Graphique
Trace en 2D et 3D.
plot mesh
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 30 / 37
Utilisation avancee
Plan
1 Presentation
2 Les bases
3 Utilisation avancee
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 31 / 37
Utilisation avancee
Utilisation de types non numeriques
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 32 / 37
Utilisation avancee
Utilisation de types non numeriques
type booleen
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 32 / 37
Utilisation avancee
Utilisation de types non numeriques
type booleen
type fonction
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 32 / 37
Utilisation avancee
Utilisation de types non numeriques
type booleen
type fonction
type chaıne de caracteres
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 32 / 37
Utilisation avancee
Utilisation de types non numeriques
type booleen
type fonction
type chaıne de caracteres
types structures : struct, list, tlist, cell
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 32 / 37
Utilisation avancee
Fonctions specialisees
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
traitement du signal
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
traitement du signal
statistique
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
traitement du signal
statistique
interpolation, approximation
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
traitement du signal
statistique
interpolation, approximation
equa. diff., integration
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
traitement du signal
statistique
interpolation, approximation
equa. diff., integration
optimisation
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Fonctions specialisees
Routines et fonctions disponibles dans le logiciel ou dans des librairiesseparees
algebre lineaire
traitement du signal
statistique
interpolation, approximation
equa. diff., integration
optimisation
. . .
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 33 / 37
Utilisation avancee
Gestion des entrees/sorties
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 34 / 37
Utilisation avancee
Gestion des entrees/sorties
lecture au clavier
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 34 / 37
Utilisation avancee
Gestion des entrees/sorties
lecture au clavier
ecriture a l’ecran
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 34 / 37
Utilisation avancee
Gestion des entrees/sorties
lecture au clavier
ecriture a l’ecran
E/S sur fichiers
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 34 / 37
Utilisation avancee
Programmation avancee
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 35 / 37
Utilisation avancee
Programmation avancee
structuration sous forme de fichiers separes
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 35 / 37
Utilisation avancee
Programmation avancee
structuration sous forme de fichiers separes
variables locales et globales
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 35 / 37
Utilisation avancee
Programmation avancee
structuration sous forme de fichiers separes
variables locales et globales
test des arguments en entree/sortie d’une routine
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 35 / 37
Utilisation avancee
Graphique avance
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 36 / 37
Utilisation avancee
Graphique avance
parametrage des traces
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 36 / 37
Utilisation avancee
Graphique avance
parametrage des traces
trace multiple
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 36 / 37
Utilisation avancee
Graphique avance
parametrage des traces
trace multiple
gestion des objets graphiques
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 36 / 37
Utilisation avancee
Interfacage avec d’autres langages
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 37 / 37
Utilisation avancee
Interfacage avec d’autres langages
appel de programmes externes
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 37 / 37
Utilisation avancee
Interfacage avec d’autres langages
appel de programmes externes
interfacage avec des modules compiles et ecrits en C, Fortran, C++
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 37 / 37
Utilisation avancee
Interfacage avec d’autres langages
appel de programmes externes
interfacage avec des modules compiles et ecrits en C, Fortran, C++
creation de nouvelles routines a l’aide de modules compiles
Nicolas SZAFRAN (UJF) Matlab-like 2011-2012 37 / 37