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