Académique Documents
Professionnel Documents
Culture Documents
MatlabModule1 Etudiants OK
MatlabModule1 Etudiants OK
MATLAB à la carte
Module 1:
Initiation
Eric ANTERRIEU
Observatoire Midi-Pyrénées
Laboratoire d’Astrophysique de Toulouse-Tarbes
CNRS — UMR5572
Eric.Anterrieu@ast.obs-mip.fr
MATLAB à la carte
Introduction
Premiers pas
Les tableaux
Les chaines de caractères
Les opérateurs
1
Matlab à la carte 04/09/2008
MATLAB à la carte
Module 1:
Initiation
MATLAB à la carte
Introduction
Premiers pas
Les tableaux
Les chaines de caractères
Les opérateurs
1
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
MATLAB est l’abréviation de MATrix LABoratory.
Né au début des années 80 dans le milieu universitaire,
MATLAB est maintenant développé et commercialisé
par la société THE MATHWORKS INC.
1983
1984
1985
1986
1987
1992
1993
1995
1996
2000
2002
2004
2005
2006
2007
2008
MATLAB 1 DOS
MATLAB 3
WINDOWS
LINUX
MATLAB 5
MATLAB 6
MATLAB 6.5
MATLAB 7
THE MATHWORKS
1ère licence
MATLAB 2 UNIX
MATLAB 4
MATLAB 7.3
MATLAB 7.4
MATLAB 7.6
MATLAB 7.1
MATLAB à la carte — module 1: « Initiation » 2 / 216
Introduction
Qu’est ce que MATLAB?
MATLAB est une application qui renferme:
un langage de très haut niveau,
et un environnement interactif,
pour:
le développement d’algorithmes,
la visualisation et l’analyse de données,
le calcul numérique scientifique et technique.
2
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
MATLAB est l’abréviation de MATrix LABoratory.
Né au début des années 80 dans le milieu universitaire,
MATLAB est maintenant développé et commercialisé
par la société THE MATHWORKS INC.
1983
1984
1985
1986
1987
1992
1993
1995
1996
2000
2002
2004
2005
2006
2007
2008
MATLAB 1 DOS
MATLAB 3
WINDOWS
LINUX
MATLAB 5
MATLAB 6
MATLAB 6.5
MATLAB 7
THE MATHWORKS
1ère licence
MATLAB 2 UNIX
MATLAB 4
MATLAB 7.3
MATLAB 7.4
MATLAB 7.6
MATLAB 7.1
MATLAB à la carte — module 1: « Initiation » 2 / 216
Introduction
Qu’est ce que MATLAB?
MATLAB est une application qui renferme:
un langage de très haut niveau,
et un environnement interactif,
pour:
le développement d’algorithmes,
la visualisation et l’analyse de données,
le calcul numérique scientifique et technique.
2
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
C’est un environnement de travail complet, puissant et
performant, ouvert et extensible qui permet de
remarquables gains de productivité et de créativité.
L’application MATLAB offre la possibilité de faire
des calculs, de la programmation et de la visualisation
dans un environnement très facile d’utilisation où les
problèmes et les solutions s’expriment avec des
notations mathématiques familières.
Introduction
Qu’est ce que MATLAB?
C’est un environnement de travail complet, puissant et
performant, ouvert et extensible qui permet de
remarquables gains de productivité et de créativité.
Le langage MATLAB est intuitif et naturel. Bien qu’il
soit interprété, il permet de résoudre des problèmes de
calcul numérique bien plus rapidement que les
langages de programmation traditionnels, tels que C,
C++ et Fortran (gains de temps spectaculaires à la
mise au point mais aussi à l’exécution).
3
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
C’est un environnement de travail complet, puissant et
performant, ouvert et extensible qui permet de
remarquables gains de productivité et de créativité.
L’application MATLAB offre la possibilité de faire
des calculs, de la programmation et de la visualisation
dans un environnement très facile d’utilisation où les
problèmes et les solutions s’expriment avec des
notations mathématiques familières.
Introduction
Qu’est ce que MATLAB?
C’est un environnement de travail complet, puissant et
performant, ouvert et extensible qui permet de
remarquables gains de productivité et de créativité.
Le langage MATLAB est intuitif et naturel. Bien qu’il
soit interprété, il permet de résoudre des problèmes de
calcul numérique bien plus rapidement que les
langages de programmation traditionnels, tels que C,
C++ et Fortran (gains de temps spectaculaires à la
mise au point mais aussi à l’exécution).
3
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
C’est un environnement de travail complet, puissant et
performant, ouvert et extensible qui permet de
remarquables gains de productivité et de créativité.
L’approche ouverte de MATLAB permet de construire
un outil sur mesure. On peut inspecter le code source
et les algorithmes des fonctions des bibliothèques,
modifier des fonctions existantes et en ajouter de
nouvelles.
Introduction
Qu’est ce que MATLAB?
MATLAB inclus des commandes de haut-niveau pour
la visualisation de données 2D et 3D ainsi que des
commandes de bas-niveau pour modifier l’apparence
des graphiques.
4
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
C’est un environnement de travail complet, puissant et
performant, ouvert et extensible qui permet de
remarquables gains de productivité et de créativité.
L’approche ouverte de MATLAB permet de construire
un outil sur mesure. On peut inspecter le code source
et les algorithmes des fonctions des bibliothèques,
modifier des fonctions existantes et en ajouter de
nouvelles.
Introduction
Qu’est ce que MATLAB?
MATLAB inclus des commandes de haut-niveau pour
la visualisation de données 2D et 3D ainsi que des
commandes de bas-niveau pour modifier l’apparence
des graphiques.
4
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
MATLAB propose des interfaces vers/depuis d’autres
langages tels que C, C++, Fortran, ou encore Java.
Introduction
Qu’est ce que MATLAB?
Avec une communauté forte de plus d’un million
d’utilisateurs répartis dans l’industrie, les organismes
gouvernementaux et académiques, MATLAB est
mondialement reconnu comme un standard pour le
calcul scientifique et technique.
MATLAB sur Internet:
web: www.mathworks.com
ftp: ftp.mathworks.com
news: comp.soft-sys.matlab
MATLAB à la carte — module 1: « Initiation » 9 / 216
5
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
MATLAB propose des interfaces vers/depuis d’autres
langages tels que C, C++, Fortran, ou encore Java.
Introduction
Qu’est ce que MATLAB?
Avec une communauté forte de plus d’un million
d’utilisateurs répartis dans l’industrie, les organismes
gouvernementaux et académiques, MATLAB est
mondialement reconnu comme un standard pour le
calcul scientifique et technique.
MATLAB sur Internet:
web: www.mathworks.com
ftp: ftp.mathworks.com
news: comp.soft-sys.matlab
MATLAB à la carte — module 1: « Initiation » 9 / 216
5
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
MATLAB est une application interactive:
les commandes sont saisies au prompt » dans la
fenêtre de commande et sont interprétées dès que la
touche du clavier est enfoncée/relâchée;
à son niveau le plus basique, MATLAB peut être vu
comme un vulgaire calculateur de poche:
» 1+1/2+1/3+1/4+1/5+1/6+1/7+1/8
ans =
2.7179
»
MATLAB à la carte — module 1: « Initiation » 10 / 216
Introduction
Qu’est ce que MATLAB?
L’application MATLAB peut se décomposer ainsi:
le langage de programmation
l’environnement de travail
le système graphique
la librairie mathématique
la liaison avec d’autres langages
6
Matlab à la carte 04/09/2008
Introduction
Qu’est ce que MATLAB?
MATLAB est une application interactive:
les commandes sont saisies au prompt » dans la
fenêtre de commande et sont interprétées dès que la
touche du clavier est enfoncée/relâchée;
à son niveau le plus basique, MATLAB peut être vu
comme un vulgaire calculateur de poche:
» 1+1/2+1/3+1/4+1/5+1/6+1/7+1/8
ans =
2.7179
»
MATLAB à la carte — module 1: « Initiation » 10 / 216
Introduction
Qu’est ce que MATLAB?
L’application MATLAB peut se décomposer ainsi:
le langage de programmation
l’environnement de travail
le système graphique
la librairie mathématique
la liaison avec d’autres langages
6
Matlab à la carte 04/09/2008
Introduction
Le langage de programmation
C’est un langage interprété de (très) haut-niveau
orienté pour la manipulation de vecteurs et de matrices
avec des caractéristiques de programmation orientée
objet (POO) marquées.
Dans le même temps, MATLAB fournit toutes les
fonctionnalités d’un langage de programmation
traditionnel, notamment les opérateurs arithmétiques
et les structures de contrôle, il utilise les fonctions, les
structures de données, les types de données et autorise
les entrées/sorties…
MATLAB à la carte — module 1: « Initiation » 12 / 216
Introduction
Le langage de programmation
Le langage MATLAB permet de développer des
algorithmes plus rapidement que les langages
traditionnels, car il n’est pas nécessaire d’effectuer les
tâches de programmation de bas-niveau (pas de
déclaration des variables, pas de spécification des
types de données, pas d’allocation de mémoire).
Dans de nombreux cas, MATLAB évite l’utilisation
de boucles. Par conséquent, une ligne de code
MATLAB peut souvent remplacer plusieurs lignes de
code C, C++ ou Fortran.
MATLAB à la carte — module 1: « Initiation » 13 / 216
7
Matlab à la carte 04/09/2008
Introduction
Le langage de programmation
C’est un langage interprété de (très) haut-niveau
orienté pour la manipulation de vecteurs et de matrices
avec des caractéristiques de programmation orientée
objet (POO) marquées.
Dans le même temps, MATLAB fournit toutes les
fonctionnalités d’un langage de programmation
traditionnel, notamment les opérateurs arithmétiques
et les structures de contrôle, il utilise les fonctions, les
structures de données, les types de données et autorise
les entrées/sorties…
MATLAB à la carte — module 1: « Initiation » 12 / 216
Introduction
Le langage de programmation
Le langage MATLAB permet de développer des
algorithmes plus rapidement que les langages
traditionnels, car il n’est pas nécessaire d’effectuer les
tâches de programmation de bas-niveau (pas de
déclaration des variables, pas de spécification des
types de données, pas d’allocation de mémoire).
Dans de nombreux cas, MATLAB évite l’utilisation
de boucles. Par conséquent, une ligne de code
MATLAB peut souvent remplacer plusieurs lignes de
code C, C++ ou Fortran.
MATLAB à la carte — module 1: « Initiation » 13 / 216
7
Matlab à la carte 04/09/2008
Introduction
Le langage de programmation
Comme de nombreux langages, MATLAB fait la
différence entre les majuscules et les minuscules.
Il utilise les parenthèses(), les accolades{}et les
crochets[], leur rôle n’est pas interchangeable!
La , et le ; sont utilisés pour séparer les instructions
d’une même ligne qui peut se terminer par ... pour
signifier que la prochaine ligne est la suite de celle-ci.
Enfin, tout texte situé après le caractère % est ignoré et
considéré comme un commentaire.
MATLAB à la carte — module 1: « Initiation » 14 / 216
Introduction
L’environnement de travail
C’est un ensemble d’outils de développement pour:
gérer les variables dans l’espace de travail;
importer et exporter des données;
développer, mettre au point et optimiser des
programmes écrits avec le langage MATLAB.
8
Matlab à la carte 04/09/2008
Introduction
Le langage de programmation
Comme de nombreux langages, MATLAB fait la
différence entre les majuscules et les minuscules.
Il utilise les parenthèses(), les accolades{}et les
crochets[], leur rôle n’est pas interchangeable!
La , et le ; sont utilisés pour séparer les instructions
d’une même ligne qui peut se terminer par ... pour
signifier que la prochaine ligne est la suite de celle-ci.
Enfin, tout texte situé après le caractère % est ignoré et
considéré comme un commentaire.
MATLAB à la carte — module 1: « Initiation » 14 / 216
Introduction
L’environnement de travail
C’est un ensemble d’outils de développement pour:
gérer les variables dans l’espace de travail;
importer et exporter des données;
développer, mettre au point et optimiser des
programmes écrits avec le langage MATLAB.
8
Matlab à la carte 04/09/2008
Introduction
Le système graphique
Il permet de visualiser des données 2D et 3D, mais
aussi d’afficher des images et des films à l’aide
commandes de haut-niveau. Il comprend aussi des
commandes de bas-niveau pour modifier l’apparence
des graphiques.
Il permet de construire et de gérer des interfaces
graphiques (GUI), soit à l’aide d’un outil de haut-
niveau, soit à l’aide de commandes de bas-niveau.
Il permet enfin d’imprimer et d’exporter dans de
nombreux formats.
MATLAB à la carte — module 1: « Initiation » 16 / 216
Introduction
La librairie mathématique
C’est une collection de fonctions mettant en œuvre des
algorithmes rapides, précis et fiables pour le calcul
numérique. Ces fonctions, développées par des experts
en mathématiques, constituent le noyau de MATLAB.
On y trouve des fonctions élémentaires (comme sum,
sin, cos, exp, log, sqrt, et tout ce qui concerne
l’arithmétique complexe) mais aussi et surtout des
fonctions plus sophistiquées (comme l’inverse d’une
matrice, le calcul de ses valeurs propres…).
9
Matlab à la carte 04/09/2008
Introduction
Le système graphique
Il permet de visualiser des données 2D et 3D, mais
aussi d’afficher des images et des films à l’aide
commandes de haut-niveau. Il comprend aussi des
commandes de bas-niveau pour modifier l’apparence
des graphiques.
Il permet de construire et de gérer des interfaces
graphiques (GUI), soit à l’aide d’un outil de haut-
niveau, soit à l’aide de commandes de bas-niveau.
Il permet enfin d’imprimer et d’exporter dans de
nombreux formats.
MATLAB à la carte — module 1: « Initiation » 16 / 216
Introduction
La librairie mathématique
C’est une collection de fonctions mettant en œuvre des
algorithmes rapides, précis et fiables pour le calcul
numérique. Ces fonctions, développées par des experts
en mathématiques, constituent le noyau de MATLAB.
On y trouve des fonctions élémentaires (comme sum,
sin, cos, exp, log, sqrt, et tout ce qui concerne
l’arithmétique complexe) mais aussi et surtout des
fonctions plus sophistiquées (comme l’inverse d’une
matrice, le calcul de ses valeurs propres…).
9
Matlab à la carte 04/09/2008
Introduction
La librairie mathématique
Les fonctions mathématiques du noyau de MATLAB
utilisent les bibliothèques d’algèbre linéaire LAPACK
et BLAS, ainsi que la bibliothèque des transformées de
Fourier discrètes FFTW. Comme ces bibliothèques
sont dépendantes du processeur elles sont optimisées
pour les différentes plates-formes supportées par
MATLAB: elles s’exécutent donc plus rapidement que
le code C, C++ ou Fortran équivalent.
Introduction
La liaison avec d’autres langages
MATLAB offre des fonctions pour l’intégration de
code C et C++, de code Fortran, d’objets COM et de
code Java.
Il est possible d’appeler des DLL, des classes Java et
des contrôles ActiveX.
En utilisant MATLAB Engine il est également
possible d’appeler MATLAB à partir d’un code C,
C++ ou Fortran.
10
Matlab à la carte 04/09/2008
Introduction
La librairie mathématique
Les fonctions mathématiques du noyau de MATLAB
utilisent les bibliothèques d’algèbre linéaire LAPACK
et BLAS, ainsi que la bibliothèque des transformées de
Fourier discrètes FFTW. Comme ces bibliothèques
sont dépendantes du processeur elles sont optimisées
pour les différentes plates-formes supportées par
MATLAB: elles s’exécutent donc plus rapidement que
le code C, C++ ou Fortran équivalent.
Introduction
La liaison avec d’autres langages
MATLAB offre des fonctions pour l’intégration de
code C et C++, de code Fortran, d’objets COM et de
code Java.
Il est possible d’appeler des DLL, des classes Java et
des contrôles ActiveX.
En utilisant MATLAB Engine il est également
possible d’appeler MATLAB à partir d’un code C,
C++ ou Fortran.
10
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
En complément de la boîte de base MATLAB, il est
possible d’ajouter des boîtes à outils spécifiques à des
domaines scientifique et techniques.
Ce sont de vastes collections de fonctions qui étendent
les capacités de la boîte de base pour résoudre des
catégories particulières de problèmes.
Les domaines couverts sont très variés…
Introduction
Les boîtes à outils
Les mathématiques et l’optimisation:
Optimisation Toolbox
Symbolic Math Toolbox
Partial Differential Equation Toolbox
Genetic Algorithm and Direct Search Toolbox
11
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
En complément de la boîte de base MATLAB, il est
possible d’ajouter des boîtes à outils spécifiques à des
domaines scientifique et techniques.
Ce sont de vastes collections de fonctions qui étendent
les capacités de la boîte de base pour résoudre des
catégories particulières de problèmes.
Les domaines couverts sont très variés…
Introduction
Les boîtes à outils
Les mathématiques et l’optimisation:
Optimisation Toolbox
Symbolic Math Toolbox
Partial Differential Equation Toolbox
Genetic Algorithm and Direct Search Toolbox
11
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
Les statistiques et l’analyse de données:
Statistics Toolbox
Neural Network Toolbox
Curve Fitting Toolbox
Spline Toolbox
Model-Based Calibration Toolbox
Introduction
Les boîtes à outils
Les systèmes de contrôle-commande:
Control System Toolbox
System Identification Toolbox
Fuzzy Logic Toolbox
Robust Control Toolbox
Model Predictive Control Toolbox
12
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
Les statistiques et l’analyse de données:
Statistics Toolbox
Neural Network Toolbox
Curve Fitting Toolbox
Spline Toolbox
Model-Based Calibration Toolbox
Introduction
Les boîtes à outils
Les systèmes de contrôle-commande:
Control System Toolbox
System Identification Toolbox
Fuzzy Logic Toolbox
Robust Control Toolbox
Model Predictive Control Toolbox
12
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
Le traitement du signal, des images et les
communications:
Signal Processing Toolbox
Image Processing Toolbox
Communications Toolbox
Filter Design Toolbox
Wavelet Toolbox
Mapping Toolbox
Introduction
Les boîtes à outils
Les tests et les mesures:
Data Acquisition Toolbox
Image Acquisition Toolbox
Instrument Control Toolbox
13
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
Le traitement du signal, des images et les
communications:
Signal Processing Toolbox
Image Processing Toolbox
Communications Toolbox
Filter Design Toolbox
Wavelet Toolbox
Mapping Toolbox
Introduction
Les boîtes à outils
Les tests et les mesures:
Data Acquisition Toolbox
Image Acquisition Toolbox
Instrument Control Toolbox
13
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
La modélisation et l’analyse financière:
Financial Toolbox
Financial Derivatives Toolbox
Introduction
Les boîtes à outils
Les bases de données:
Database Toolbox
MATLAB® Report Generator
14
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
La modélisation et l’analyse financière:
Financial Toolbox
Financial Derivatives Toolbox
Introduction
Les boîtes à outils
Les bases de données:
Database Toolbox
MATLAB® Report Generator
14
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
Le calcul distribué:
Distributed Computing Toolbox
MATLAB® Distributed Computing Engine
Introduction
Les boîtes à outils
Le déploiement d’applications:
MATLAB® Compiler
Excel Link
MATLAB® Builder for Excel®
MATLAB® Builder for Java™
15
Matlab à la carte 04/09/2008
Introduction
Les boîtes à outils
Le calcul distribué:
Distributed Computing Toolbox
MATLAB® Distributed Computing Engine
Introduction
Les boîtes à outils
Le déploiement d’applications:
MATLAB® Compiler
Excel Link
MATLAB® Builder for Excel®
MATLAB® Builder for Java™
15
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier matlab fait
help référence au dossier/répertoire
extern src dans lequel l’application
lib MATLAB a été installée.
include
toolbox local Depuis l’environnement de
matlab travail, le chemin complet de
signal
ce dossier est accessible avec
other la commande matlabroot.
spline
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier bin contient les
help binaires nécessaires à
extern src l’exécution de l’application
lib MATLAB sur la machine sur
include
laquelle elle a été installée.
toolbox local
matlab
signal
other
spline
tour
16
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier matlab fait
help référence au dossier/répertoire
extern src dans lequel l’application
lib MATLAB a été installée.
include
toolbox local Depuis l’environnement de
matlab travail, le chemin complet de
signal
ce dossier est accessible avec
other la commande matlabroot.
spline
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier bin contient les
help binaires nécessaires à
extern src l’exécution de l’application
lib MATLAB sur la machine sur
include
laquelle elle a été installée.
toolbox local
matlab
signal
other
spline
tour
16
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier help contient les
help sources de la documentation
extern src hypertext (.html) ainsi que
lib les versions ADOBE ACROBAT
include
(.pdf) de ces documents.
toolbox local
matlab
signal
other
spline
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier extern contient
help les sources (src), les fichiers
extern src à inclure (include) et les
lib librairies (lib) nécessaires à
include
l’utilisation de l’API.
toolbox local
matlab
signal
other
spline
tour
17
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier help contient les
help sources de la documentation
extern src hypertext (.html) ainsi que
lib les versions ADOBE ACROBAT
include
(.pdf) de ces documents.
toolbox local
matlab
signal
other
spline
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Le dossier extern contient
help les sources (src), les fichiers
extern src à inclure (include) et les
lib librairies (lib) nécessaires à
include
l’utilisation de l’API.
toolbox local
matlab
signal
other
spline
tour
17
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include
toolbox local
matlab
signal
other
spline
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include La boîte de base MATLAB est
toolbox local dans le dossier matlab.
matlab
signal
other
spline
tour
18
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include
toolbox local
matlab
signal
other
spline
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include La boîte de base MATLAB est
toolbox local dans le dossier matlab.
matlab
signal
other
spline
tour
18
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include La boîte de base MATLAB est
toolbox local dans le dossier matlab.
matlab
signal Les autres boîtes à outils se
other
trouvent dans des dossiers
portant leur nom, si la licence a
spline
été acquise!
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include Le dossier local est réservé
toolbox local aux développements locaux ou
matlab d’intérêt général.
signal
Le dossier tour contient
other
l’ensemble des démonstrations
spline
de la boîte MATLAB et des
tour
boîtes à outils installées.
MATLAB à la carte — module 1: « Initiation » 37 / 216
19
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include La boîte de base MATLAB est
toolbox local dans le dossier matlab.
matlab
signal Les autres boîtes à outils se
other
trouvent dans des dossiers
portant leur nom, si la licence a
spline
été acquise!
tour
Introduction
Les répertoires/dossiers de MATLAB
matlab bin
Dans le dossier toolbox, on
help trouve les différentes boîtes à
extern src outils.
lib
include Le dossier local est réservé
toolbox local aux développements locaux ou
matlab d’intérêt général.
signal
Le dossier tour contient
other
l’ensemble des démonstrations
spline
de la boîte MATLAB et des
tour
boîtes à outils installées.
MATLAB à la carte — module 1: « Initiation » 37 / 216
19
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin La boîte MATLAB est divisée
help en répertoires/dossiers associés
extern src à des sujets accessibles depuis
lib l’environnement de travail
include
avec la command help.
toolbox local
matlab general datafun datatypes
signal ops polyfun demos
lang funfun graph2d
other
elmat sparfun graph3d
spline elfun strfun graphics
tour specfun iofun specgraph
matfun timefun uitools
MATLAB à la carte — module 1: « Initiation » 38 / 216
Introduction
Conclusion
Apprendre à utiliser MATLAB c’est un peu comme
apprendre à conduire une voiture: on peut apprendre
toutes les règles de conduite, mais pour devenir un bon
conducteur… …il faut conduire un véhicule.
20
Matlab à la carte 04/09/2008
Introduction
Les répertoires/dossiers de MATLAB
matlab bin La boîte MATLAB est divisée
help en répertoires/dossiers associés
extern src à des sujets accessibles depuis
lib l’environnement de travail
include
avec la command help.
toolbox local
matlab general datafun datatypes
signal ops polyfun demos
lang funfun graph2d
other
elmat sparfun graph3d
spline elfun strfun graphics
tour specfun iofun specgraph
matfun timefun uitools
MATLAB à la carte — module 1: « Initiation » 38 / 216
Introduction
Conclusion
Apprendre à utiliser MATLAB c’est un peu comme
apprendre à conduire une voiture: on peut apprendre
toutes les règles de conduite, mais pour devenir un bon
conducteur… …il faut conduire un véhicule.
20
Matlab à la carte 04/09/2008
Premiers pas
Démarrage de MATLAB
Pour démarrer MATLAB:
cliquez deux fois sur l’icône MATLAB,
ou tapez matlab à l’invite du système
d’exploitation,
(consultez votre administrateur système pour plus
d’information sur l’installation de MATLAB sur votre
ordinateur).
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
21
Matlab à la carte 04/09/2008
Premiers pas
Démarrage de MATLAB
Pour démarrer MATLAB:
cliquez deux fois sur l’icône MATLAB,
ou tapez matlab à l’invite du système
d’exploitation,
(consultez votre administrateur système pour plus
d’information sur l’installation de MATLAB sur votre
ordinateur).
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
21
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
Premiers pas
Démarrage de MATLAB
Le fichier MATLABrc.m est automatiquement
interprété lors du démarrage de MATLAB.
Il est dans le dossier matlab/toolbox/local, et
il est vivement recommandé de ne pas le modifier!
Il affiche le message de bienvenue, établie la liste des
chemins connus, initialise des propriétés graphiques et
exécute le script startup.m (s’il le trouve dans la
liste des chemins connus).
22
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
Premiers pas
Démarrage de MATLAB
Le fichier MATLABrc.m est automatiquement
interprété lors du démarrage de MATLAB.
Il est dans le dossier matlab/toolbox/local, et
il est vivement recommandé de ne pas le modifier!
Il affiche le message de bienvenue, établie la liste des
chemins connus, initialise des propriétés graphiques et
exécute le script startup.m (s’il le trouve dans la
liste des chemins connus).
22
Matlab à la carte 04/09/2008
MATLAB
» path
MATLABPATH
c:\program files\matlab\toolbox\matlab\general
c:\program files\matlab\toolbox\matlab\ops
c:\program files\matlab\toolbox\matlab\lang
c:\program files\matlab\toolbox\matlab\elmat
c:\program files\matlab\toolbox\matlab\elfun
c:\program files\matlab\toolbox\matlab\specfun
c:\program files\matlab\toolbox\matlab\matfun
c:\program files\matlab\toolbox\matlab\datafun
c:\program files\matlab\toolbox\matlab\polyfun
c:\program files\matlab\toolbox\matlab\funfun
c:\program files\matlab\toolbox\matlab\sparfun
c:\program files\matlab\toolbox\matlab\scribe
c:\program files\matlab\toolbox\matlab\graph2d
c:\program files\matlab\toolbox\matlab\graph3d
c:\program files\matlab\toolbox\matlab\specgraph
c:\program files\matlab\toolbox\matlab\graphics
c:\program files\matlab\toolbox\matlab\uitools
c:\program files\matlab\toolbox\matlab\strfun
c:\program files\matlab\toolbox\matlab\imagesci
c:\program files\matlab\toolbox\matlab\iofun
c:\program files\matlab\toolbox\matlab\audiovideo
c:\program files\matlab\toolbox\matlab\timefun
c:\program files\matlab\toolbox\matlab\datatypes
c:\program files\matlab\toolbox\matlab\codetools
c:\program files\matlab\toolbox\matlab\helptools
c:\program files\matlab\toolbox\matlab\demos
MATLAB à la carte — module 1: « Initiation » 44 / 216
MATLAB
» path
MATLABPATH
/usr/local/matlab/toolbox/matlab/general
/usr/local/matlab/toolbox/matlab/ops
/usr/local/matlab/toolbox/matlab/lang
/usr/local/matlab/toolbox/matlab/elmat
/usr/local/matlab/toolbox/matlab/elfun
/usr/local/matlab/toolbox/matlab/specfun
/usr/local/matlab/toolbox/matlab/matfun
/usr/local/matlab/toolbox/matlab/datafun
/usr/local/matlab/toolbox/matlab/polyfun
/usr/local/matlab/toolbox/matlab/funfun
/usr/local/matlab/toolbox/matlab/sparfun
/usr/local/matlab/toolbox/matlab/scribe
/usr/local/matlab/toolbox/matlab/graph2d
/usr/local/matlab/toolbox/matlab/graph3d
/usr/local/matlab/toolbox/matlab/specgraph
/usr/local/matlab/toolbox/matlab/graphics
/usr/local/matlab/toolbox/matlab/uitools
/usr/local/matlab/toolbox/matlab/strfun
/usr/local/matlab/toolbox/matlab/imagesci
/usr/local/matlab/toolbox/matlab/iofun
/usr/local/matlab/toolbox/matlab/audiovideo
/usr/local/matlab/toolbox/matlab/timefun
/usr/local/matlab/toolbox/matlab/datatypes
/usr/local/matlab/toolbox/matlab/codetools
/usr/local/matlab/toolbox/matlab/helptools
/usr/local/matlab/toolbox/matlab/demos
MATLAB à la carte — module 1: « Initiation » 45 / 216
23
Matlab à la carte 04/09/2008
MATLAB
» path
MATLABPATH
c:\program files\matlab\toolbox\matlab\general
c:\program files\matlab\toolbox\matlab\ops
c:\program files\matlab\toolbox\matlab\lang
c:\program files\matlab\toolbox\matlab\elmat
c:\program files\matlab\toolbox\matlab\elfun
c:\program files\matlab\toolbox\matlab\specfun
c:\program files\matlab\toolbox\matlab\matfun
c:\program files\matlab\toolbox\matlab\datafun
c:\program files\matlab\toolbox\matlab\polyfun
c:\program files\matlab\toolbox\matlab\funfun
c:\program files\matlab\toolbox\matlab\sparfun
c:\program files\matlab\toolbox\matlab\scribe
c:\program files\matlab\toolbox\matlab\graph2d
c:\program files\matlab\toolbox\matlab\graph3d
c:\program files\matlab\toolbox\matlab\specgraph
c:\program files\matlab\toolbox\matlab\graphics
c:\program files\matlab\toolbox\matlab\uitools
c:\program files\matlab\toolbox\matlab\strfun
c:\program files\matlab\toolbox\matlab\imagesci
c:\program files\matlab\toolbox\matlab\iofun
c:\program files\matlab\toolbox\matlab\audiovideo
c:\program files\matlab\toolbox\matlab\timefun
c:\program files\matlab\toolbox\matlab\datatypes
c:\program files\matlab\toolbox\matlab\codetools
c:\program files\matlab\toolbox\matlab\helptools
c:\program files\matlab\toolbox\matlab\demos
MATLAB à la carte — module 1: « Initiation » 44 / 216
MATLAB
» path
MATLABPATH
/usr/local/matlab/toolbox/matlab/general
/usr/local/matlab/toolbox/matlab/ops
/usr/local/matlab/toolbox/matlab/lang
/usr/local/matlab/toolbox/matlab/elmat
/usr/local/matlab/toolbox/matlab/elfun
/usr/local/matlab/toolbox/matlab/specfun
/usr/local/matlab/toolbox/matlab/matfun
/usr/local/matlab/toolbox/matlab/datafun
/usr/local/matlab/toolbox/matlab/polyfun
/usr/local/matlab/toolbox/matlab/funfun
/usr/local/matlab/toolbox/matlab/sparfun
/usr/local/matlab/toolbox/matlab/scribe
/usr/local/matlab/toolbox/matlab/graph2d
/usr/local/matlab/toolbox/matlab/graph3d
/usr/local/matlab/toolbox/matlab/specgraph
/usr/local/matlab/toolbox/matlab/graphics
/usr/local/matlab/toolbox/matlab/uitools
/usr/local/matlab/toolbox/matlab/strfun
/usr/local/matlab/toolbox/matlab/imagesci
/usr/local/matlab/toolbox/matlab/iofun
/usr/local/matlab/toolbox/matlab/audiovideo
/usr/local/matlab/toolbox/matlab/timefun
/usr/local/matlab/toolbox/matlab/datatypes
/usr/local/matlab/toolbox/matlab/codetools
/usr/local/matlab/toolbox/matlab/helptools
/usr/local/matlab/toolbox/matlab/demos
MATLAB à la carte — module 1: « Initiation » 45 / 216
23
Matlab à la carte 04/09/2008
Premiers pas
Démarrage de MATLAB
S’il existe, le script startup.m est exécuté au
démarrage de MATLAB pour configurer MATLAB
sans modifier le fichier MATLABrc.m.
Pour cela, il doit se trouver dans le répertoire de
démarrage de MATLAB ou dans un des répertoires de
la liste des chemins connus.
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
startup.m
January 29, 2005
%STARTUP User startup M-file.
%
To get started,% type
STARTUP one command is helpwin,
of these: invoked by MATLABRCor
helpdesk, ifdemo.
the
% file 'startup.m'
For product information, exists on the current path.
visit www.mathworks.com.
%
» rmpath('c:\program files\matlab\toolbox\signal');
rmpath('c:\program files\matlab\toolbox\signal');
» addpath('d:\user\anterrieu\matlab');
addpath('d:\user\anterrieu\matlab');
24
Matlab à la carte 04/09/2008
Premiers pas
Démarrage de MATLAB
S’il existe, le script startup.m est exécuté au
démarrage de MATLAB pour configurer MATLAB
sans modifier le fichier MATLABrc.m.
Pour cela, il doit se trouver dans le répertoire de
démarrage de MATLAB ou dans un des répertoires de
la liste des chemins connus.
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
startup.m
January 29, 2005
%STARTUP User startup M-file.
%
To get started,% type
STARTUP one command is helpwin,
of these: invoked by MATLABRCor
helpdesk, ifdemo.
the
% file 'startup.m'
For product information, exists on the current path.
visit www.mathworks.com.
%
» rmpath('c:\program files\matlab\toolbox\signal');
rmpath('c:\program files\matlab\toolbox\signal');
» addpath('d:\user\anterrieu\matlab');
addpath('d:\user\anterrieu\matlab');
24
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
startup.m
January 29, 2005
%STARTUP User startup M-file.
%
To get started,% type
STARTUP one command is helpwin,
of these: invoked by MATLABRCor
helpdesk, ifdemo.
the
% file 'startup.m'
For product information, exists on the current path.
visit www.mathworks.com.
%
» rmpath('/usr/local/matlab/toolbox/signal');
rmpath('/usr/local/matlab/toolbox/signal');
» addpath('/user/anterrieu/matlab');
addpath('/user/anterrieu/matlab');
Premiers pas
Information
La commande ver renvoie de l’information au sujet
de MATLAB et des éventuelles boîtes à outils
installées.
25
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
startup.m
January 29, 2005
%STARTUP User startup M-file.
%
To get started,% type
STARTUP one command is helpwin,
of these: invoked by MATLABRCor
helpdesk, ifdemo.
the
% file 'startup.m'
For product information, exists on the current path.
visit www.mathworks.com.
%
» rmpath('/usr/local/matlab/toolbox/signal');
rmpath('/usr/local/matlab/toolbox/signal');
» addpath('/user/anterrieu/matlab');
addpath('/user/anterrieu/matlab');
Premiers pas
Information
La commande ver renvoie de l’information au sujet
de MATLAB et des éventuelles boîtes à outils
installées.
25
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
26
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
26
Matlab à la carte 04/09/2008
Premiers pas
Information
La commande computer renvoie de l’information
sur l’ordinateur sur lequel MATLAB s’exécute
actuellement.
Cette commande retourne aussi le nombre maximal
d’éléments autorisés dans une matrice sur cet
ordinateur avec cette version de MATLAB.
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
27
Matlab à la carte 04/09/2008
Premiers pas
Information
La commande computer renvoie de l’information
sur l’ordinateur sur lequel MATLAB s’exécute
actuellement.
Cette commande retourne aussi le nombre maximal
d’éléments autorisés dans une matrice sur cet
ordinateur avec cette version de MATLAB.
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
27
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
Premiers pas
Interagir avec le système d’exploitation
De nombreuses commandes du système d’exploitation
sont accessible depuis MATLAB (cd, dir, mkdir…
pour DOS; cd, pwd, ls, mkdir… pour UNIX). Les
autres sont accessibles depuis les deux fonctions:
>> [status,result]=dos('command');
>> [status,result]=unix('command');
De plus, tout texte suivi du point d’exclamation ! est
interpréter comme une commande adressée au système
d’exploitation.
MATLAB à la carte — module 1: « Initiation » 55 / 216
28
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
Premiers pas
Interagir avec le système d’exploitation
De nombreuses commandes du système d’exploitation
sont accessible depuis MATLAB (cd, dir, mkdir…
pour DOS; cd, pwd, ls, mkdir… pour UNIX). Les
autres sont accessibles depuis les deux fonctions:
>> [status,result]=dos('command');
>> [status,result]=unix('command');
De plus, tout texte suivi du point d’exclamation ! est
interpréter comme une commande adressée au système
d’exploitation.
MATLAB à la carte — module 1: « Initiation » 55 / 216
28
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
29
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
29
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
matlabrc.m
January 29, 2005
%MATLABRC Master startup M-file.
%
To get started,% type
MATLABRC one of
is these: helpwin,
automatically helpdesk,
executed by or demo.
MATLAB
For product information, visit www.mathworks.com.
% during startup.
% It establishes the MATLAB path, sets the default
» cd 'c:\program files\matlab\toolbox'
% figure size, and sets a few uicontrol defaults.
» unix('ls -alF');
%
ls: command ou %nom
On multi-user incorrect
de fichier or networked systems, the system
» dos('dir'); % manager can put any messages, definitions, etc.
Le volume dans %le lecteur C
that apply to allest DISQUE
users2 here.
Le numéro de série
% du volume est 2205-97BA
Répertoire de C:\Program
% MATLABRC Files\Matlab\toolbox
also invokes a STARTUP command if the
% file 'startup.m' exists on the MATLAB PATH.
. <REP> 22/05/97 12:30 .
.. <REP> %22/05/97
Set up path. 12:30 ..
LOCAL <REP> if22/05/97 12:31 local
exist('pathdef','file')
MATLAB <REP> 22/05/97 12:31 matlab
matlabpath(pathdef);
SIGNAL <REP> end22/05/97 12:31 signal
TOUR <REP> 22/05/97 12:31 tour
0 fichier(s) % Set the default 0 octets
figure position
6 répertoire(s) 22 051 997 octets libres
» dos('notepad matlab\matlabrc.m &');
»
MATLAB à la carte — module 1: « Initiation » 58 / 216
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
matlabrc.m
January 29, 2005
%MATLABRC Master startup M-file.
%
To get started,% type
MATLABRC one of
is these: helpwin,
automatically helpdesk,
executed by or demo.
MATLAB
For product information, visit www.mathworks.com.
% during startup.
% It establishes the MATLAB path, sets the default
» cd '/usr/local/matlab/toolbox'
% figure size, and sets a few uicontrol defaults.
» dos('dir'); %
dir: command not
% Onfound
multi-user or networked systems, the system
» unix('ls -alF');
% manager can put any messages, definitions, etc.
total 24 % that apply to all users here.
drwxrwxr-x 6 %root staff 512 may 05 1997 ./
drwxrwxr-x 16 %root
MATLABRC staff
also512 may 05
invokes a 1997
STARTUP../
command if the
drwxrwxr-x 10 %root
file staff 512 may
'startup.m' 05 1997
exists on thelocal/
MATLAB PATH.
drwxrwxr-x 23 root staff 512 may 05 1997 matlab/
drwxrwxr-x 5 %rootSet up staff
path.512 may 05 1997 signal/
drwxrwxr-x 3 if root staff 512 may 05 1997 tour/
exist('pathdef','file')
matlabpath(pathdef);
» unix('emacs matlab/matlabrc.m
end &');
»
% Set the default figure position
30
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
matlabrc.m
January 29, 2005
%MATLABRC Master startup M-file.
%
To get started,% type
MATLABRC one of
is these: helpwin,
automatically helpdesk,
executed by or demo.
MATLAB
For product information, visit www.mathworks.com.
% during startup.
% It establishes the MATLAB path, sets the default
» cd 'c:\program files\matlab\toolbox'
% figure size, and sets a few uicontrol defaults.
» unix('ls -alF');
%
ls: command ou %nom
On multi-user incorrect
de fichier or networked systems, the system
» dos('dir'); % manager can put any messages, definitions, etc.
Le volume dans %le lecteur C
that apply to allest DISQUE
users2 here.
Le numéro de série
% du volume est 2205-97BA
Répertoire de C:\Program
% MATLABRC Files\Matlab\toolbox
also invokes a STARTUP command if the
% file 'startup.m' exists on the MATLAB PATH.
. <REP> 22/05/97 12:30 .
.. <REP> %22/05/97
Set up path. 12:30 ..
LOCAL <REP> if22/05/97 12:31 local
exist('pathdef','file')
MATLAB <REP> 22/05/97 12:31 matlab
matlabpath(pathdef);
SIGNAL <REP> end22/05/97 12:31 signal
TOUR <REP> 22/05/97 12:31 tour
0 fichier(s) % Set the default 0 octets
figure position
6 répertoire(s) 22 051 997 octets libres
» dos('notepad matlab\matlabrc.m &');
»
MATLAB à la carte — module 1: « Initiation » 58 / 216
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
matlabrc.m
January 29, 2005
%MATLABRC Master startup M-file.
%
To get started,% type
MATLABRC one of
is these: helpwin,
automatically helpdesk,
executed by or demo.
MATLAB
For product information, visit www.mathworks.com.
% during startup.
% It establishes the MATLAB path, sets the default
» cd '/usr/local/matlab/toolbox'
% figure size, and sets a few uicontrol defaults.
» dos('dir'); %
dir: command not
% Onfound
multi-user or networked systems, the system
» unix('ls -alF');
% manager can put any messages, definitions, etc.
total 24 % that apply to all users here.
drwxrwxr-x 6 %root staff 512 may 05 1997 ./
drwxrwxr-x 16 %root
MATLABRC staff
also512 may 05
invokes a 1997
STARTUP../
command if the
drwxrwxr-x 10 %root
file staff 512 may
'startup.m' 05 1997
exists on thelocal/
MATLAB PATH.
drwxrwxr-x 23 root staff 512 may 05 1997 matlab/
drwxrwxr-x 5 %rootSet up staff
path.512 may 05 1997 signal/
drwxrwxr-x 3 if root staff 512 may 05 1997 tour/
exist('pathdef','file')
matlabpath(pathdef);
» unix('emacs matlab/matlabrc.m
end &');
»
% Set the default figure position
30
Matlab à la carte 04/09/2008
Premiers pas
Aide
La commande help permet d’accéder à l’aide en
ligne de MATLAB:
>> help
liste tous les thèmes,
>> help directory
affiche le contenu du répertoire directory,
>> help function
affiche l’aide de la fonction function.
MATLAB
» help
HELP topics:
matlab\general - General purpose commands.
matlab\ops - Operators and special characters.
matlab\lang - Programming language constructs.
matlab\elmat - Elementary matrices and matrix manipulation.
matlab\elfun - Elementary math functions.
matlab\specfun - Specialized math functions.
matlab\matfun - Matrix functions - numerical linear algebra.
matlab\datafun - Data analysis and Fourier transforms.
matlab\polyfun - Interpolation and polynomials.
matlab\funfun - Function functions and ODE solvers.
matlab\sparfun - Sparse matrices.
matlab\graph2d - Two dimensional graphs.
matlab\graph3d - Three dimensional graphs.
matlab\specgraph - Specialized graphs.
matlab\graphics - Handle Graphics.
matlab\uitools - Graphical user interface tools.
matlab\strfun - Character strings.
matlab\iofun - File input/output.
matlab\timefun - Time and dates.
matlab\datatypes - Data types and structures.
matlab\demos - Examples and demonstrations.
matlab\local - Preferences.
For more help on directory/topic, type "help topic".
»
31
Matlab à la carte 04/09/2008
Premiers pas
Aide
La commande help permet d’accéder à l’aide en
ligne de MATLAB:
>> help
liste tous les thèmes,
>> help directory
affiche le contenu du répertoire directory,
>> help function
affiche l’aide de la fonction function.
MATLAB
» help
HELP topics:
matlab\general - General purpose commands.
matlab\ops - Operators and special characters.
matlab\lang - Programming language constructs.
matlab\elmat - Elementary matrices and matrix manipulation.
matlab\elfun - Elementary math functions.
matlab\specfun - Specialized math functions.
matlab\matfun - Matrix functions - numerical linear algebra.
matlab\datafun - Data analysis and Fourier transforms.
matlab\polyfun - Interpolation and polynomials.
matlab\funfun - Function functions and ODE solvers.
matlab\sparfun - Sparse matrices.
matlab\graph2d - Two dimensional graphs.
matlab\graph3d - Three dimensional graphs.
matlab\specgraph - Specialized graphs.
matlab\graphics - Handle Graphics.
matlab\uitools - Graphical user interface tools.
matlab\strfun - Character strings.
matlab\iofun - File input/output.
matlab\timefun - Time and dates.
matlab\datatypes - Data types and structures.
matlab\demos - Examples and demonstrations.
matlab\local - Preferences.
For more help on directory/topic, type "help topic".
»
31
Matlab à la carte 04/09/2008
Premiers pas
Journal
La commande/fonction diary permet de créer un
journal de la session:
>> diary('filename');
provoque l’écriture des prochaines entrées/sorties de la
fenêtre de commande dans le fichier filename.
>> diary off;
suspend la sauvegarde,
>> diary on;
rétablit la sauvegarde.
MATLAB à la carte — module 1: « Initiation » 62 / 216
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
32
Matlab à la carte 04/09/2008
Premiers pas
Journal
La commande/fonction diary permet de créer un
journal de la session:
>> diary('filename');
provoque l’écriture des prochaines entrées/sorties de la
fenêtre de commande dans le fichier filename.
>> diary off;
suspend la sauvegarde,
>> diary on;
rétablit la sauvegarde.
MATLAB à la carte — module 1: « Initiation » 62 / 216
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
32
Matlab à la carte 04/09/2008
MATLAB
» type session.txt
computer
session.txt
ans =
PCWIN computer
ver ans =
PCWIN
-----------------------------
MATLAB Version 5.3.0 on PCWIN
MATLAB License ver
Number: 220597
-----------------------------
-----------------------------
MATLAB Toolbox MATLAB VersionVersion
5.3.0 on PCWIN
5.3 15-JAN-1999
MATLAB
Signal Processing LicenseVersion
Toolbox Number:4.2
220597
10-JUL-1998
MATLAB Tour -----------------------------
Version 1.2 04-SEP-1998
MATLAB Toolbox Version 5.3 15-JAN-1999
diary off Signal Processing Toolbox Version 4.2 10-JUL-1998
» MATLAB Tour Version 1.2 04-SEP-1998
diary off
Premiers pas
Mémoire des commandes
Les commandes saisies dans la fenêtre de commande
durant la session sont mémorisées dans un buffer. Les
touches des flèches ( ) peuvent être utilisées
pour naviguer dans ce buffer:
rappelle la commande précédente
rappelle la commande suivante
déplace le curseur vers la gauche
déplace le curseur vers la droite
33
Matlab à la carte 04/09/2008
MATLAB
» type session.txt
computer
session.txt
ans =
PCWIN computer
ver ans =
PCWIN
-----------------------------
MATLAB Version 5.3.0 on PCWIN
MATLAB License ver
Number: 220597
-----------------------------
-----------------------------
MATLAB Toolbox MATLAB VersionVersion
5.3.0 on PCWIN
5.3 15-JAN-1999
MATLAB
Signal Processing LicenseVersion
Toolbox Number:4.2
220597
10-JUL-1998
MATLAB Tour -----------------------------
Version 1.2 04-SEP-1998
MATLAB Toolbox Version 5.3 15-JAN-1999
diary off Signal Processing Toolbox Version 4.2 10-JUL-1998
» MATLAB Tour Version 1.2 04-SEP-1998
diary off
Premiers pas
Mémoire des commandes
Les commandes saisies dans la fenêtre de commande
durant la session sont mémorisées dans un buffer. Les
touches des flèches ( ) peuvent être utilisées
pour naviguer dans ce buffer:
rappelle la commande précédente
rappelle la commande suivante
déplace le curseur vers la gauche
déplace le curseur vers la droite
33
Matlab à la carte 04/09/2008
Premiers pas
Mémoire des commandes
Le rappelle « malin » peut être utilisé pour rappeler
l’ensemble des commandes qui commencent par
certains caractères, comme par exemple:
>> hel
permet de naviguer dans la liste des commandes qui
commencent par hel.
Premiers pas
L’espace de travail
L’espace de travail, ou workspace, est l’espace
mémoire utilisé par MATLAB pour stocker toutes les
variables.
Deux commandes, who et whos, liste les variables
actuellement contenues dans cet espace de travail.
La commande clear permet d’effacer certaines
variables, sinon toutes, de l’espace de travail.
La commande pack permet de consolider l’état de la
mémoire (déclanche un ramasse miettes).
MATLAB à la carte — module 1: « Initiation » 67 / 216
34
Matlab à la carte 04/09/2008
Premiers pas
Mémoire des commandes
Le rappelle « malin » peut être utilisé pour rappeler
l’ensemble des commandes qui commencent par
certains caractères, comme par exemple:
>> hel
permet de naviguer dans la liste des commandes qui
commencent par hel.
Premiers pas
L’espace de travail
L’espace de travail, ou workspace, est l’espace
mémoire utilisé par MATLAB pour stocker toutes les
variables.
Deux commandes, who et whos, liste les variables
actuellement contenues dans cet espace de travail.
La commande clear permet d’effacer certaines
variables, sinon toutes, de l’espace de travail.
La commande pack permet de consolider l’état de la
mémoire (déclanche un ramasse miettes).
MATLAB à la carte — module 1: « Initiation » 67 / 216
34
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
Premiers pas
L’espace de travail
A la fin d’une session MATLAB, toutes les variables
présentes dans l’espace de travail sont détruites (et
donc perdues).
La commande save permet de sauver certaines
variables (ou toutes) dans un fichier écrit sur disque.
La commande load permet de relire ce fichier,
entièrement ou partiellement, pour charger dans
l’espace de travail toutes ou partie des variables qu’il
contient.
35
Matlab à la carte 04/09/2008
MATLAB
< M A T L A B >
Copyright 1984-2005 The MathWorks, Inc.
Version 7.0.4.352 (R14) Service Pack 2
January 29, 2005
Premiers pas
L’espace de travail
A la fin d’une session MATLAB, toutes les variables
présentes dans l’espace de travail sont détruites (et
donc perdues).
La commande save permet de sauver certaines
variables (ou toutes) dans un fichier écrit sur disque.
La commande load permet de relire ce fichier,
entièrement ou partiellement, pour charger dans
l’espace de travail toutes ou partie des variables qu’il
contient.
35
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
MATLAB effectue toutes ses opérations virgule
flottante en simple ou en double précision en se
conformant au standard IEEE 754.
La précision relative des nombres est 2-22 ou 2-52, ce
qui correspond approximativement à 8 ou 16 chiffres
décimales significatives. L’étendue est comprise entre
10-38 et 10+38 ou entre 10-308 et 10+308.
Premiers pas
Arithmétique IEEE
La valeur décimale x* d’un flottant x codé au standard
IEEE 754 est:
(e-E)d
x* = (-1)S (1,m)d 2
où:
S est le bit de signe [0/1];
la mantisse 1,m est le nombre binaire dont la partie
entière vaut 1, et dont la partie fractionnaire m est
donnée par les bits IEEE correspondants;
36
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
MATLAB effectue toutes ses opérations virgule
flottante en simple ou en double précision en se
conformant au standard IEEE 754.
La précision relative des nombres est 2-22 ou 2-52, ce
qui correspond approximativement à 8 ou 16 chiffres
décimales significatives. L’étendue est comprise entre
10-38 et 10+38 ou entre 10-308 et 10+308.
Premiers pas
Arithmétique IEEE
La valeur décimale x* d’un flottant x codé au standard
IEEE 754 est:
(e-E)d
x* = (-1)S (1,m)d 2
où:
S est le bit de signe [0/1];
la mantisse 1,m est le nombre binaire dont la partie
entière vaut 1, et dont la partie fractionnaire m est
donnée par les bits IEEE correspondants;
36
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
La fonction eps retourne la précision relative.
Les fonctions realmin et realmax retournent le
plus petit et le plus grand flottant positif.
MATLAB
» eps
ans =
2.2204e-016
» realmax
ans =
1.7977e+308
» realmin
ans =
2.2251e-308
» eps=0.5
ans =
0.5000
» clear eps
» eps
ans =
2.2204e-016
»
37
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
La fonction eps retourne la précision relative.
Les fonctions realmin et realmax retournent le
plus petit et le plus grand flottant positif.
MATLAB
» eps
ans =
2.2204e-016
» realmax
ans =
1.7977e+308
» realmin
ans =
2.2251e-308
» eps=0.5
ans =
0.5000
» clear eps
» eps
ans =
2.2204e-016
»
37
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
Si le résultat d’une opération arithmétique est plus
grand que realmax, il y a dépassement et le résultat
est Inf (). De même, tout résultat qui est plus petit
que -realmax produit -Inf ().
Une opération arithmétique dont le résultat n’est pas
mathématiquement défini conduit à la valeur NaN (Not
a Number).
Les valeurs Inf et NaN se propagent comme toute
autre valeur dans les calculs ultérieurs.
MATLAB à la carte — module 1: « Initiation » 74 / 216
MATLAB
» 1.1*realmax
ans =
Inf
» -1.1*realmax
ans =
-Inf
» Inf/Inf
ans =
NaN
» Inf-Inf
ans =
NaN
» 0/0
Warning: Divide by zero.
ans =
NaN
»
38
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
Si le résultat d’une opération arithmétique est plus
grand que realmax, il y a dépassement et le résultat
est Inf (). De même, tout résultat qui est plus petit
que -realmax produit -Inf ().
Une opération arithmétique dont le résultat n’est pas
mathématiquement défini conduit à la valeur NaN (Not
a Number).
Les valeurs Inf et NaN se propagent comme toute
autre valeur dans les calculs ultérieurs.
MATLAB à la carte — module 1: « Initiation » 74 / 216
MATLAB
» 1.1*realmax
ans =
Inf
» -1.1*realmax
ans =
-Inf
» Inf/Inf
ans =
NaN
» Inf-Inf
ans =
NaN
» 0/0
Warning: Divide by zero.
ans =
NaN
»
38
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
La commande format permet de modifier le format
d’affichage des résultats dans la fenêtre de commande:
format short scaled fixed point with 5 digits
format long scaled fixed point with 15 digits
format short e floating point with 5 digits
format long e floating point with 15 digits
format short g best of fixed/floating point with 5 digits
format long g best of fixed/floating point with 15 digits
format hex hexadecimal
format bank fixed point with 2 digits ($,£,€)
format rat approximation by ratio of small integers
MATLAB à la carte — module 1: « Initiation » 76 / 216
MATLAB
» format short; 10*pi
ans = 31.4159
» format long; 10*pi
ans = 31.41592653589793
» format short e; 10*pi
ans = 3.1416e+001
» format long e; 10*pi
ans = 3. 141592653589793e+001
» format short g; 10*pi
ans = 31.416
» format long g; 10*pi
ans = 31.4159265358979
» format hex; 10*pi
ans = 403f6a7a2955385e
» format bank; 10*pi
ans = 31.42
» format rat; 10*pi
ans = 3550/113
»
MATLAB à la carte — module 1: « Initiation » 77 / 216
39
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
La commande format permet de modifier le format
d’affichage des résultats dans la fenêtre de commande:
format short scaled fixed point with 5 digits
format long scaled fixed point with 15 digits
format short e floating point with 5 digits
format long e floating point with 15 digits
format short g best of fixed/floating point with 5 digits
format long g best of fixed/floating point with 15 digits
format hex hexadecimal
format bank fixed point with 2 digits ($,£,€)
format rat approximation by ratio of small integers
MATLAB à la carte — module 1: « Initiation » 76 / 216
MATLAB
» format short; 10*pi
ans = 31.4159
» format long; 10*pi
ans = 31.41592653589793
» format short e; 10*pi
ans = 3.1416e+001
» format long e; 10*pi
ans = 3. 141592653589793e+001
» format short g; 10*pi
ans = 31.416
» format long g; 10*pi
ans = 31.4159265358979
» format hex; 10*pi
ans = 403f6a7a2955385e
» format bank; 10*pi
ans = 31.42
» format rat; 10*pi
ans = 3550/113
»
MATLAB à la carte — module 1: « Initiation » 77 / 216
39
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
MATLAB propose une large collection de fonctions
mathématiques élémentaires (help elfun) ou
spécialisées (help specfun) qui opèrent sur les
scalaires mais aussi sur les éléments des tableaux.
Premiers pas
Arithmétique IEEE
Fonctions trigonométriques:
cos, sin, tan, csc, sec, cot.
Fonctions trigonométriques inverses:
acos, asin, atan, atan2, asec, acsc, acot.
Fonctions hyperboliques:
cosh, sinh, tanh, sech, csch, coth.
Fonctions hyperboliques inverses:
acosh, asinh, atanh, asech, acsch, acoth.
MATLAB à la carte — module 1: « Initiation » 79 / 216
40
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
MATLAB propose une large collection de fonctions
mathématiques élémentaires (help elfun) ou
spécialisées (help specfun) qui opèrent sur les
scalaires mais aussi sur les éléments des tableaux.
Premiers pas
Arithmétique IEEE
Fonctions trigonométriques:
cos, sin, tan, csc, sec, cot.
Fonctions trigonométriques inverses:
acos, asin, atan, atan2, asec, acsc, acot.
Fonctions hyperboliques:
cosh, sinh, tanh, sech, csch, coth.
Fonctions hyperboliques inverses:
acosh, asinh, atanh, asech, acsch, acoth.
MATLAB à la carte — module 1: « Initiation » 79 / 216
40
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
Fonctions exponentielles et logarithmiques:
exp, expm1, log, log1p, log10, log2, power,
pow2, nextpow2, nthroot, sqrt.
Manipulation des nombres complexes:
complex, conj, imag, real, isreal, abs,
angle, unwrap, i, j.
Arrondis et restes:
fix, floor, ceil, round, mod, rem, sign.
Premiers pas
Arithmétique IEEE
Fonctions spéciales:
airy, bessel*, erf*, expint*, gamma*,
beta*, ellip*, legendre.
Théorie des nombres:
factor, primes, isprime, gcd, lcm, perms,
nchoosek, rat, rats.
Changements de coordonnées:
cart2sph, sph2cart, cart2pol, pol2cart.
41
Matlab à la carte 04/09/2008
Premiers pas
Arithmétique IEEE
Fonctions exponentielles et logarithmiques:
exp, expm1, log, log1p, log10, log2, power,
pow2, nextpow2, nthroot, sqrt.
Manipulation des nombres complexes:
complex, conj, imag, real, isreal, abs,
angle, unwrap, i, j.
Arrondis et restes:
fix, floor, ceil, round, mod, rem, sign.
Premiers pas
Arithmétique IEEE
Fonctions spéciales:
airy, bessel*, erf*, expint*, gamma*,
beta*, ellip*, legendre.
Théorie des nombres:
factor, primes, isprime, gcd, lcm, perms,
nchoosek, rat, rats.
Changements de coordonnées:
cart2sph, sph2cart, cart2pol, pol2cart.
41
Matlab à la carte 04/09/2008
Les tableaux
Créer des tableaux
Les matrices et les vecteurs sont les fondations de
MATLAB. Ce sont des cas particuliers de tableaux
multidimensionnels.
Les tableaux peuvent être créer de plusieurs manières:
saisir la liste des éléments explicitement;
utiliser une fonction adéquate;
lire des données depuis un fichier.
Aucune instruction d’allocation de mémoire ou de
déclaration de type n’est requise: c’est automatique!
MATLAB à la carte — module 1: « Initiation » 82 / 216
Les tableaux
Créer des tableaux
Le moyen le plus simple est de saisir la liste des
éléments de manière explicite en respectant les
conventions suivantes:
séparer les éléments par des espaces ou des virgules;
utiliser les points-virgules pour la fin des lignes;
entourer les éléments entre des parenthèses.
42
Matlab à la carte 04/09/2008
Les tableaux
Créer des tableaux
Les matrices et les vecteurs sont les fondations de
MATLAB. Ce sont des cas particuliers de tableaux
multidimensionnels.
Les tableaux peuvent être créer de plusieurs manières:
saisir la liste des éléments explicitement;
utiliser une fonction adéquate;
lire des données depuis un fichier.
Aucune instruction d’allocation de mémoire ou de
déclaration de type n’est requise: c’est automatique!
MATLAB à la carte — module 1: « Initiation » 82 / 216
Les tableaux
Créer des tableaux
Le moyen le plus simple est de saisir la liste des
éléments de manière explicite en respectant les
conventions suivantes:
séparer les éléments par des espaces ou des virgules;
utiliser les points-virgules pour la fin des lignes;
entourer les éléments entre des parenthèses.
42
Matlab à la carte 04/09/2008
Les tableaux [] , ;
MATLAB
» X=[1 2 3 4]
X =
1 2 3 4
» X=[1, 2, 3, 4]
X =
1 2 3 4
» X=[1; 2; 3; 4]
X =
1
2
3
4
» X=[1
2; 3
4]
X =
1
2
3
4
»
Les tableaux [] , ;
MATLAB
» X=[-1 2 -3 4]
X =
-1 2 -3 4
» X=[-1, 2, -3, 4]
X =
-1 2 -3 4
» X=[-1 2 - 3 4]
X =
-1 -1 4
»
43
Matlab à la carte 04/09/2008
Les tableaux [] , ;
MATLAB
» X=[1 2 3 4]
X =
1 2 3 4
» X=[1, 2, 3, 4]
X =
1 2 3 4
» X=[1; 2; 3; 4]
X =
1
2
3
4
» X=[1
2; 3
4]
X =
1
2
3
4
»
Les tableaux [] , ;
MATLAB
» X=[-1 2 -3 4]
X =
-1 2 -3 4
» X=[-1, 2, -3, 4]
X =
-1 2 -3 4
» X=[-1 2 - 3 4]
X =
-1 -1 4
»
43
Matlab à la carte 04/09/2008
Les tableaux [] , ;
MATLAB
» X=[1 2 3 4]
X =
1 2 3 4
» Y=[0 X 5]
Y =
horizontal concatenation
0 1 2 3 4 5
» X=[1; 2; 3; 4]
X =
1
2
3
4
» Y=[0; X; 5]
Y =
vertical concatenation
0
1
2
3
4
5
»
Les tableaux [] , ;
MATLAB
» A=[1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
» X=[0; 9]
X =
0
9
» A=[X [1 2 3 4; 5 6 7 8] X]
A =
horizontal
0 1 2 3 4 0 concatenation
9 5 6 7 8 9
» X=[0 0 9 9]
X =
0 0 9 9
» A=[X; 1 2 3 4; X; 5 6 7 8; X] vertical
A =
0 0 9
1 2 3
9
4
concatenation
0 0 9 9
5 6 7 8
0 0 9 9
»
MATLAB à la carte — module 1: « Initiation » 87 / 216
44
Matlab à la carte 04/09/2008
Les tableaux [] , ;
MATLAB
» X=[1 2 3 4]
X =
1 2 3 4
» Y=[0 X 5]
Y =
horizontal concatenation
0 1 2 3 4 5
» X=[1; 2; 3; 4]
X =
1
2
3
4
» Y=[0; X; 5]
Y =
vertical concatenation
0
1
2
3
4
5
»
Les tableaux [] , ;
MATLAB
» A=[1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
» X=[0; 9]
X =
0
9
» A=[X [1 2 3 4; 5 6 7 8] X]
A =
horizontal
0 1 2 3 4 0 concatenation
9 5 6 7 8 9
» X=[0 0 9 9]
X =
0 0 9 9
» A=[X; 1 2 3 4; X; 5 6 7 8; X] vertical
A =
0 0 9
1 2 3
9
4
concatenation
0 0 9 9
5 6 7 8
0 0 9 9
»
MATLAB à la carte — module 1: « Initiation » 87 / 216
44
Matlab à la carte 04/09/2008
Les tableaux [] , ;
MATLAB
» B=[0 0; 9 9]
B =
0 0
9 9
» A=[B [1 2 3 4; 5 6 7 8] B]
A =
horizontal
0 0 1 2 3 4 0 0 concatenation
9 9 5 6 7 8 9 9
» B=[0 0 0 0; 9 9 9 9]
B =
0 0 0 0
9 9 9 9
» A=[B; 1 2 3 4; B; 5 6 7 8; B] vertical
A =
0 0 0
9 9 9
0
9
concatenation
1 2 3 4
0 0 0 0
9 9 9 9
5 6 7 8
0 0 0 0
9 9 9 9
»
Les tableaux
Transposition
Le caractère apostrophe ' est utilisé pour la
transposition d’un vector ou d’une matrice:
ctranspose , ' transposition complexe conjugué
transpose , .' transposition simple
45
Matlab à la carte 04/09/2008
Les tableaux [] , ;
MATLAB
» B=[0 0; 9 9]
B =
0 0
9 9
» A=[B [1 2 3 4; 5 6 7 8] B]
A =
horizontal
0 0 1 2 3 4 0 0 concatenation
9 9 5 6 7 8 9 9
» B=[0 0 0 0; 9 9 9 9]
B =
0 0 0 0
9 9 9 9
» A=[B; 1 2 3 4; B; 5 6 7 8; B] vertical
A =
0 0 0
9 9 9
0
9
concatenation
1 2 3 4
0 0 0 0
9 9 9 9
5 6 7 8
0 0 0 0
9 9 9 9
»
Les tableaux
Transposition
Le caractère apostrophe ' est utilisé pour la
transposition d’un vector ou d’une matrice:
ctranspose , ' transposition complexe conjugué
transpose , .' transposition simple
45
Matlab à la carte 04/09/2008
MATLAB
» X=[1+i 2+i 3+i 4+i]
X =
1.00+1.00i 2.00+1.00i 3.00+1.00i 4.00+1.00i
» X' %% ctranspose(X)
ans =
1.00-1.00i
2.00-1.00i
3.00-1.00i
4.00-1.00i
» X.' %% transpose(X)
ans =
1.00+1.00i
2.00+1.00i
3.00+1.00i
4.00+1.00i
» conj(X')
ans =
1.00+1.00i
2.00+1.00i
3.00+1.00i
4.00+1.00i
»
MATLAB
» A=[1+i 2+i 3+i 4+i; 5-i 6-i 7-i 8-i]
A =
1.00+1.00i 2.00+1.00i 3.00+1.00i 4.00+1.00i
5.00-1.00i 6.00-1.00i 7.00-1.00i 8.00-1.00i
» A' %% ctranspose(A)
ans =
1.00-1.00i 5.00+1.00i
2.00-1.00i 6.00+1.00i
3.00-1.00i 7.00+1.00i
4.00-1.00i 8.00+1.00i
» A.' %% transpose(A)
ans =
1.00+1.00i 5.00-1.00i
2.00+1.00i 6.00-1.00i
3.00+1.00i 7.00-1.00i
4.00+1.00i 8.00-1.00i
» conj(A')
ans =
1.00+1.00i 5.00-1.00i
2.00+1.00i 6.00-1.00i
3.00+1.00i 7.00-1.00i
4.00+1.00i 8.00-1.00i
»
46
Matlab à la carte 04/09/2008
MATLAB
» X=[1+i 2+i 3+i 4+i]
X =
1.00+1.00i 2.00+1.00i 3.00+1.00i 4.00+1.00i
» X' %% ctranspose(X)
ans =
1.00-1.00i
2.00-1.00i
3.00-1.00i
4.00-1.00i
» X.' %% transpose(X)
ans =
1.00+1.00i
2.00+1.00i
3.00+1.00i
4.00+1.00i
» conj(X')
ans =
1.00+1.00i
2.00+1.00i
3.00+1.00i
4.00+1.00i
»
MATLAB
» A=[1+i 2+i 3+i 4+i; 5-i 6-i 7-i 8-i]
A =
1.00+1.00i 2.00+1.00i 3.00+1.00i 4.00+1.00i
5.00-1.00i 6.00-1.00i 7.00-1.00i 8.00-1.00i
» A' %% ctranspose(A)
ans =
1.00-1.00i 5.00+1.00i
2.00-1.00i 6.00+1.00i
3.00-1.00i 7.00+1.00i
4.00-1.00i 8.00+1.00i
» A.' %% transpose(A)
ans =
1.00+1.00i 5.00-1.00i
2.00+1.00i 6.00-1.00i
3.00+1.00i 7.00-1.00i
4.00+1.00i 8.00-1.00i
» conj(A')
ans =
1.00+1.00i 5.00-1.00i
2.00+1.00i 6.00-1.00i
3.00+1.00i 7.00-1.00i
4.00+1.00i 8.00-1.00i
»
46
Matlab à la carte 04/09/2008
Les tableaux
Indices des tableaux
Les éléments d’un tableau sont adressés à l’aide de
l’opérateur ().
MATLAB donne la possibilité d’adresser les éléments
des tableaux multidimensionnels avec autant d’indices
que de dimensions ou avec un seul indice (ce qui
correspond à une vision vectorielle du tableau).
Les tableaux
Indices des tableaux
Toutes expression utilisée comme indice est arrondie à
l’entier le plus proche. Les indices nuls ou négatifs ne
sont pas supportés par MATLAB.
Le mot clef end utilisé en tant qu’indice permet
d’adresser le dernier indice de la dimension
correspondante alors que l’utilisation de : permet
d’adresser l’ensemble des indices de cette même
dimension.
47
Matlab à la carte 04/09/2008
Les tableaux
Indices des tableaux
Les éléments d’un tableau sont adressés à l’aide de
l’opérateur ().
MATLAB donne la possibilité d’adresser les éléments
des tableaux multidimensionnels avec autant d’indices
que de dimensions ou avec un seul indice (ce qui
correspond à une vision vectorielle du tableau).
Les tableaux
Indices des tableaux
Toutes expression utilisée comme indice est arrondie à
l’entier le plus proche. Les indices nuls ou négatifs ne
sont pas supportés par MATLAB.
Le mot clef end utilisé en tant qu’indice permet
d’adresser le dernier indice de la dimension
correspondante alors que l’utilisation de : permet
d’adresser l’ensemble des indices de cette même
dimension.
47
Matlab à la carte 04/09/2008
MATLAB
» X=[1.5 2.5 3.5 4.5 5.5 6.5];
» X(1)
ans =
1.5000
» X(2)
ans =
2.5000
» X(end)
ans =
6.5000
» X(2:4)
ans =
2.5000 3.5000 4.5000
» X(7)
??? Index exceeds matrix dimensions.
» whos X
Name Size Bytes Class
X 1x6 48 double array
Grand total is 6 elements using 48 bytes
»
MATLAB
» X=[1.5 2.5 3.5 4.5 5.5 6.5];
» X(8)=8.5;
» X(7)
ans =
0.0000
» whos X
Name Size Bytes Class
X 1x8 64 double array
Grand total is 8 elements using 64 bytes
» X(1:end)
ans =
1.5000 2.5000 3.5000 4.5000 5.5000 6.5000 0.0000 8.5000
» X(2:2:end)
ans =
2.5000 4.5000 6.5000 8.5000
» X(end:-2:2)
ans =
8.5000 6.5000 4.5000 2.5000
»
48
Matlab à la carte 04/09/2008
MATLAB
» X=[1.5 2.5 3.5 4.5 5.5 6.5];
» X(1)
ans =
1.5000
» X(2)
ans =
2.5000
» X(end)
ans =
6.5000
» X(2:4)
ans =
2.5000 3.5000 4.5000
» X(7)
??? Index exceeds matrix dimensions.
» whos X
Name Size Bytes Class
X 1x6 48 double array
Grand total is 6 elements using 48 bytes
»
MATLAB
» X=[1.5 2.5 3.5 4.5 5.5 6.5];
» X(8)=8.5;
» X(7)
ans =
0.0000
» whos X
Name Size Bytes Class
X 1x8 64 double array
Grand total is 8 elements using 64 bytes
» X(1:end)
ans =
1.5000 2.5000 3.5000 4.5000 5.5000 6.5000 0.0000 8.5000
» X(2:2:end)
ans =
2.5000 4.5000 6.5000 8.5000
» X(end:-2:2)
ans =
8.5000 6.5000 4.5000 2.5000
»
48
Matlab à la carte 04/09/2008
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1,1)
ans =
1.1000
» A(2,1)
ans =
2.1000
» A(3,1)
ans =
3.1000
» A(1,2)
ans =
1.2000
» A(end,end)
ans =
3.4000
»
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1)
ans =
1.1000
» A(2)
ans =
2.1000
» A(3)
ans =
3.1000
» A(4)
ans =
1.2000
» A(end)
ans =
3.4000
»
49
Matlab à la carte 04/09/2008
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1,1)
ans =
1.1000
» A(2,1)
ans =
2.1000
» A(3,1)
ans =
3.1000
» A(1,2)
ans =
1.2000
» A(end,end)
ans =
3.4000
»
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1)
ans =
1.1000
» A(2)
ans =
2.1000
» A(3)
ans =
3.1000
» A(4)
ans =
1.2000
» A(end)
ans =
3.4000
»
49
Matlab à la carte 04/09/2008
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1:3+1:end)
ans =
1.1000 2.2000 3.3000
» A(1+3:3+1:end)
ans =
1.2000 2.3000 3.4000
» A=[1.1 1.2 1.3; 2.1 2.2 2.3; 3.1 3.2 3.3]
A =
1.1000 1.2000 1.3000
2.1000 2.2000 2.3000
3.1000 3.2000 3.3000
» A(1:3+1:end)
ans =
1.1000 2.2000 3.3000
»
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1,:)
ans =
1.1000 1.2000 1.3000 1.4000
» A(:,1)
ans =
1.1000
2.1000
3.1000
» A(1:2,2:4)
ans =
1.2000 1.3000 1.4000
2.2000 2.3000 2.4000
» A([1 3],[1 3 4])
ans =
1.1000 1.3000 1.4000
3.1000 3.3000 3.4000
»
50
Matlab à la carte 04/09/2008
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1:3+1:end)
ans =
1.1000 2.2000 3.3000
» A(1+3:3+1:end)
ans =
1.2000 2.3000 3.4000
» A=[1.1 1.2 1.3; 2.1 2.2 2.3; 3.1 3.2 3.3]
A =
1.1000 1.2000 1.3000
2.1000 2.2000 2.3000
3.1000 3.2000 3.3000
» A(1:3+1:end)
ans =
1.1000 2.2000 3.3000
»
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(1,:)
ans =
1.1000 1.2000 1.3000 1.4000
» A(:,1)
ans =
1.1000
2.1000
3.1000
» A(1:2,2:4)
ans =
1.2000 1.3000 1.4000
2.2000 2.3000 2.4000
» A([1 3],[1 3 4])
ans =
1.1000 1.3000 1.4000
3.1000 3.3000 3.4000
»
50
Matlab à la carte 04/09/2008
Les tableaux
Indices des tableaux
Une autre utilisation spéciale de l’opérateur : est:
• à droite d’une instruction d’affectation (=), la
syntaxe A(:) désigne un vecteur contenant tous les
éléments de A considéré comme un vecteur colonne;
• à gauche d’une instruction d’affectation, la
syntaxe A(:) signifie que l’affectation dans A se fait
sans changement de forme (ou de profil) de A.
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
» B=A(:)
B =
1.1000
2.1000
1.2000
2.2000
1.3000
2.3000
1.4000
2.4000
» whos A B
Name Size Bytes Class
A 2x4 64 double array
B 8x1 64 double array
Grand total is 16 elements using 128 bytes
»
51
Matlab à la carte 04/09/2008
Les tableaux
Indices des tableaux
Une autre utilisation spéciale de l’opérateur : est:
• à droite d’une instruction d’affectation (=), la
syntaxe A(:) désigne un vecteur contenant tous les
éléments de A considéré comme un vecteur colonne;
• à gauche d’une instruction d’affectation, la
syntaxe A(:) signifie que l’affectation dans A se fait
sans changement de forme (ou de profil) de A.
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
» B=A(:)
B =
1.1000
2.1000
1.2000
2.2000
1.3000
2.3000
1.4000
2.4000
» whos A B
Name Size Bytes Class
A 2x4 64 double array
B 8x1 64 double array
Grand total is 16 elements using 128 bytes
»
51
Matlab à la carte 04/09/2008
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
» B=[1 2 3 4 5 6 7 8]
B =
1 2 3 4 5 6 7 8
» A(:)=B
A =
1 3 5 7
2 4 6 8
» whos A B
Name Size Bytes Class
A 2x4 64 double array
B 8x1 64 double array
Grand total is 16 elements using 128 bytes
»
Les tableaux
Indices des tableaux
Les méthodes d’adressage des éléments des tableaux
proposées par MATLAB permettent des manipulations
relativement complexes des données (duplication,
permutation…).
La notation [] dénote un tableau vide. Assigner [] à
une ligne ou une colonne d’un tableau est un moyen
simple de détruire cette ligne ou cette colonne.
52
Matlab à la carte 04/09/2008
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
» B=[1 2 3 4 5 6 7 8]
B =
1 2 3 4 5 6 7 8
» A(:)=B
A =
1 3 5 7
2 4 6 8
» whos A B
Name Size Bytes Class
A 2x4 64 double array
B 8x1 64 double array
Grand total is 16 elements using 128 bytes
»
Les tableaux
Indices des tableaux
Les méthodes d’adressage des éléments des tableaux
proposées par MATLAB permettent des manipulations
relativement complexes des données (duplication,
permutation…).
La notation [] dénote un tableau vide. Assigner [] à
une ligne ou une colonne d’un tableau est un moyen
simple de détruire cette ligne ou cette colonne.
52
Matlab à la carte 04/09/2008
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(2,:) = [] deletes 2nd row
A =
1.1000 1.2000 1.3000 1.4000
3.1000 3.2000 3.3000 3.4000
» A(:,3) = [] deletes 3rd column
A =
1.1000 1.2000 1.4000
3.1000 3.2000 3.4000
»
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A([1,1:3,3],:) duplicates 1st and 3rd rows
A =
1.1000 1.2000 1.3000 1.4000
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
3.1000 3.2000 3.3000 3.4000
» A(:,[1,1:4,4]) duplicates 1st and 4th columns
A =
1.1000 1.1000 1.2000 1.3000 1.4000 1.4000
1.1000 1.1000 1.2000 1.3000 1.4000 1.4000
2.1000 2.1000 2.2000 2.3000 2.4000 2.4000
3.1000 3.1000 3.2000 3.3000 3.4000 3.4000
3.1000 3.1000 3.2000 3.3000 3.4000 3.4000
»
53
Matlab à la carte 04/09/2008
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A(2,:) = [] deletes 2nd row
A =
1.1000 1.2000 1.3000 1.4000
3.1000 3.2000 3.3000 3.4000
» A(:,3) = [] deletes 3rd column
A =
1.1000 1.2000 1.4000
3.1000 3.2000 3.4000
»
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A([1,1:3,3],:) duplicates 1st and 3rd rows
A =
1.1000 1.2000 1.3000 1.4000
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
3.1000 3.2000 3.3000 3.4000
» A(:,[1,1:4,4]) duplicates 1st and 4th columns
A =
1.1000 1.1000 1.2000 1.3000 1.4000 1.4000
1.1000 1.1000 1.2000 1.3000 1.4000 1.4000
2.1000 2.1000 2.2000 2.3000 2.4000 2.4000
3.1000 3.1000 3.2000 3.3000 3.4000 3.4000
3.1000 3.1000 3.2000 3.3000 3.4000 3.4000
»
53
Matlab à la carte 04/09/2008
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A([3 2 1],:) permutes rows
A =
3.1000 3.2000 3.3000 3.4000
2.1000 2.2000 2.3000 2.4000
1.1000 1.2000 1.3000 1.4000
» A(:,[4 3 2 1]) permutes columns
A =
3.4000 3.3000 3.2000 3.1000
2.4000 2.3000 2.2000 2.1000
1.4000 1.3000 1.2000 1.1000
»
Les tableaux
Créer des tableaux
Les méthodes d’adressage des éléments des tableaux
proposées par MATLAB permettent des manipulations
relativement complexes des données qui s’avèrent
utiles et efficaces pour la création de tableaux
multidimensionnels.
54
Matlab à la carte 04/09/2008
Les tableaux () : []
MATLAB
» A=[1.1 1.2 1.3 1.4; 2.1 2.2 2.3 2.4; 3.1 3.2 3.3 3.4]
A =
1.1000 1.2000 1.3000 1.4000
2.1000 2.2000 2.3000 2.4000
3.1000 3.2000 3.3000 3.4000
» A([3 2 1],:) permutes rows
A =
3.1000 3.2000 3.3000 3.4000
2.1000 2.2000 2.3000 2.4000
1.1000 1.2000 1.3000 1.4000
» A(:,[4 3 2 1]) permutes columns
A =
3.4000 3.3000 3.2000 3.1000
2.4000 2.3000 2.2000 2.1000
1.4000 1.3000 1.2000 1.1000
»
Les tableaux
Créer des tableaux
Les méthodes d’adressage des éléments des tableaux
proposées par MATLAB permettent des manipulations
relativement complexes des données qui s’avèrent
utiles et efficaces pour la création de tableaux
multidimensionnels.
54
Matlab à la carte 04/09/2008
Les tableaux [] , ; :
MATLAB
» A=[1 2 3 4; 5 6 7 8];
» whos A
Name Size Bytes Class
A 2x4 64 double array
Grand total is 8 elements using 64 bytes
» A(:,:,2)=[11 12 13 14; 15 16 17 18];
» A(:,:,3)=[21 22 23 24; 25 26 27 28];
» A
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» whos A
Name Size Bytes Class
A 2x4x3 192 double array
Grand total is 24 elements using 192 bytes
»
Les tableaux [] , ; :
MATLAB
» A=[1 2 3 4; 5 6 7 8];
» whos A
Name Size Bytes Class
A 2x4 64 double array
Grand total is 8 elements using 64 bytes
»
» A(:,:,3)=[21 22 23 24; 25 26 27 28];
» A
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
0 0 0 0
0 0 0 0
A(:,:,3) =
21 22 23 24
25 26 27 28
» whos A
Name Size Bytes Class
A 2x4x3 192 double array
Grand total is 24 elements using 192 bytes
»
55
Matlab à la carte 04/09/2008
Les tableaux [] , ; :
MATLAB
» A=[1 2 3 4; 5 6 7 8];
» whos A
Name Size Bytes Class
A 2x4 64 double array
Grand total is 8 elements using 64 bytes
» A(:,:,2)=[11 12 13 14; 15 16 17 18];
» A(:,:,3)=[21 22 23 24; 25 26 27 28];
» A
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» whos A
Name Size Bytes Class
A 2x4x3 192 double array
Grand total is 24 elements using 192 bytes
»
Les tableaux [] , ; :
MATLAB
» A=[1 2 3 4; 5 6 7 8];
» whos A
Name Size Bytes Class
A 2x4 64 double array
Grand total is 8 elements using 64 bytes
»
» A(:,:,3)=[21 22 23 24; 25 26 27 28];
» A
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
0 0 0 0
0 0 0 0
A(:,:,3) =
21 22 23 24
25 26 27 28
» whos A
Name Size Bytes Class
A 2x4x3 192 double array
Grand total is 24 elements using 192 bytes
»
55
Matlab à la carte 04/09/2008
Les tableaux
Créer des tableaux
La création d’un tableau multidimensionnel en listant
explicitement les éléments en une seule instruction est
possible avec la fonction cat.
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28])
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» whos A
Name Size Bytes Class
A 2x4x3 192 double array
Grand total is 24 elements using 192 bytes
»
56
Matlab à la carte 04/09/2008
Les tableaux
Créer des tableaux
La création d’un tableau multidimensionnel en listant
explicitement les éléments en une seule instruction est
possible avec la fonction cat.
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28])
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» whos A
Name Size Bytes Class
A 2x4x3 192 double array
Grand total is 24 elements using 192 bytes
»
56
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28])
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» ndims(A)
ans =
3
» size(A)
ans =
2 4 3
»
MATLAB
» A=[1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
» X=[0 0 9 9]
X =
0 0 9 9
» B=cat(1,A,X)
B =
1 2 3 4
5 6 7 8
0 0 9 9
» B=[A; X] vertical
B =
1 2 3
5 6 7
4
8
concatenation
0 0 9 9
»
57
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28])
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» ndims(A)
ans =
3
» size(A)
ans =
2 4 3
»
MATLAB
» A=[1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
» X=[0 0 9 9]
X =
0 0 9 9
» B=cat(1,A,X)
B =
1 2 3 4
5 6 7 8
0 0 9 9
» B=[A; X] vertical
B =
1 2 3
5 6 7
4
8
concatenation
0 0 9 9
»
57
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
» X=[0; 9]
X =
0
9
» B=cat(2,A,X)
B =
1 2 3 4 0
5 6 7 8 9
» B=[A, X] horizontal
B =
1 2 3
5 6 7
4
8
0
9
concatenation
»
Les tableaux
Manipuler des tableaux
La fonction sub2ind retourne l’indice unique
équivalent d’un élément d’un tableau multi-
dimensionnel adressé par tous ses indices.
La fonction ind2sub effectue l’opération inverse.
58
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3 4; 5 6 7 8]
A =
1 2 3 4
5 6 7 8
» X=[0; 9]
X =
0
9
» B=cat(2,A,X)
B =
1 2 3 4 0
5 6 7 8 9
» B=[A, X] horizontal
B =
1 2 3
5 6 7
4
8
0
9
concatenation
»
Les tableaux
Manipuler des tableaux
La fonction sub2ind retourne l’indice unique
équivalent d’un élément d’un tableau multi-
dimensionnel adressé par tous ses indices.
La fonction ind2sub effectue l’opération inverse.
58
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28])
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» n=sub2ind(size(A),1,3,2)
n =
13
» [i,j,k]=ind2sub(size(A),13)
i =
1
j =
3
k =
2
»
Les tableaux
Manipuler les tableaux
La fonction permute permute les dimensions d’un
tableau afin qu’elles soient dans l’ordre précisé par un
vecteur (tout en préservant le nombre d’éléments du
tableau, bien évidemment!)
La fonction ipermute réalise l’opération inverse.
59
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28])
A(:,:,1) =
1 2 3 4
5 6 7 8
A(:,:,2) =
11 12 13 14
15 16 17 18
A(:,:,3) =
21 22 23 24
25 26 27 28
» n=sub2ind(size(A),1,3,2)
n =
13
» [i,j,k]=ind2sub(size(A),13)
i =
1
j =
3
k =
2
»
Les tableaux
Manipuler les tableaux
La fonction permute permute les dimensions d’un
tableau afin qu’elles soient dans l’ordre précisé par un
vecteur (tout en préservant le nombre d’éléments du
tableau, bien évidemment!)
La fonction ipermute réalise l’opération inverse.
59
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3 2x4x3=24
» B=permute(A,[2 3 1])
B(:,:,1) =
1 11 21
2 12 22
3 13 23
4 14 24
B(:,:,2) =
5 15 25
6 16 26
7 17 27
8 18 28
» size(B)
ans =
4 3 2 4x3x2=24
»
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=permute(A,[2 3 1]);
» C=permute(B,[2 3 1])
C(:,:,1) =
1 5
11 15
21 25
C(:,:,2) =
2 6
12 16
22 26
C(:,:,3) =
3 7
13 17
23 27
C(:,:,4) =
4 8
14 18
24 28
»
MATLAB à la carte — module 1: « Initiation » 119 / 216
60
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3 2x4x3=24
» B=permute(A,[2 3 1])
B(:,:,1) =
1 11 21
2 12 22
3 13 23
4 14 24
B(:,:,2) =
5 15 25
6 16 26
7 17 27
8 18 28
» size(B)
ans =
4 3 2 4x3x2=24
»
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=permute(A,[2 3 1]);
» C=permute(B,[2 3 1])
C(:,:,1) =
1 5
11 15
21 25
C(:,:,2) =
2 6
12 16
22 26
C(:,:,3) =
3 7
13 17
23 27
C(:,:,4) =
4 8
14 18
24 28
»
MATLAB à la carte — module 1: « Initiation » 119 / 216
60
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=permute(A,[2 3 1]);
» C=permute(B,[3 1 2])
C(:,:,1) =
1 2 3 4
5 6 7 8
C(:,:,2) =
11 12 13 14
15 16 17 18
C(:,:,3) =
21 22 23 24
25 26 27 28
»
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=permute(A,[2 3 1]);
» C=ipermute(B,[2 3 1])
C(:,:,1) =
1 2 3 4
5 6 7 8
C(:,:,2) =
11 12 13 14
15 16 17 18
C(:,:,3) =
21 22 23 24
25 26 27 28
»
61
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=permute(A,[2 3 1]);
» C=permute(B,[3 1 2])
C(:,:,1) =
1 2 3 4
5 6 7 8
C(:,:,2) =
11 12 13 14
15 16 17 18
C(:,:,3) =
21 22 23 24
25 26 27 28
»
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=permute(A,[2 3 1]);
» C=ipermute(B,[2 3 1])
C(:,:,1) =
1 2 3 4
5 6 7 8
C(:,:,2) =
11 12 13 14
15 16 17 18
C(:,:,3) =
21 22 23 24
25 26 27 28
»
61
Matlab à la carte 04/09/2008
Les tableaux
Manipuler les tableaux
La fonction reshape change les dimensions d’un
tableau en prenant les éléments colonne par colonne,
depuis la première vers la dernière, tout en préservant
le nombre total d’éléments bien évidemment!
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3 2x4x3=24
» B=reshape(A,6,4)
B =
1 4 13 22
5 8 17 26
2 11 14 23
6 15 18 27
3 12 21 24
7 16 25 28
» size(B)
ans =
6 4 6x4=24
»
62
Matlab à la carte 04/09/2008
Les tableaux
Manipuler les tableaux
La fonction reshape change les dimensions d’un
tableau en prenant les éléments colonne par colonne,
depuis la première vers la dernière, tout en préservant
le nombre total d’éléments bien évidemment!
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3 2x4x3=24
» B=reshape(A,6,4)
B =
1 4 13 22
5 8 17 26
2 11 14 23
6 15 18 27
3 12 21 24
7 16 25 28
» size(B)
ans =
6 4 6x4=24
»
62
Matlab à la carte 04/09/2008
MATLAB
» A(:)
1
5
2
6
3
7
4
8
11
15
12
16
13
17
14
18
21
25
22
26
23
27
24
28
»
Les tableaux
Manipuler les tableaux
La fonction squeeze efface toutes les dimensions
orphelines (=1) d’un tableau, tout en préservant le
nombre total d’éléments, bien évidemment!
63
Matlab à la carte 04/09/2008
MATLAB
» A(:)
1
5
2
6
3
7
4
8
11
15
12
16
13
17
14
18
21
25
22
26
23
27
24
28
»
Les tableaux
Manipuler les tableaux
La fonction squeeze efface toutes les dimensions
orphelines (=1) d’un tableau, tout en préservant le
nombre total d’éléments, bien évidemment!
63
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=A(1,:,:)
B(:,:,1) =
1 2 3 4
B(:,:,2) =
11 12 13 14
B(:,:,3) =
21 22 23 24
» size(B)
ans =
1 4 3 1x4x3=12
» C=squeeze(B)
C =
1 11 21
2 12 22
3 13 23
4 14 24
» size(C)
ans =
4 3 4x3=12
»
MATLAB à la carte — module 1: « Initiation » 126 / 216
Les tableaux
Manipuler les tableaux
La fonction shiftdim décale les dimensions d’un
tableau vers la droite ou vers la gauche.
64
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=A(1,:,:)
B(:,:,1) =
1 2 3 4
B(:,:,2) =
11 12 13 14
B(:,:,3) =
21 22 23 24
» size(B)
ans =
1 4 3 1x4x3=12
» C=squeeze(B)
C =
1 11 21
2 12 22
3 13 23
4 14 24
» size(C)
ans =
4 3 4x3=12
»
MATLAB à la carte — module 1: « Initiation » 126 / 216
Les tableaux
Manipuler les tableaux
La fonction shiftdim décale les dimensions d’un
tableau vers la droite ou vers la gauche.
64
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=shiftdim(A,1);
» size(B)
ans =
4 3 2
» B=shiftdim(A,2);
» size(B)
ans =
3 2 4
» B=shiftdim(A,3);
» size(B)
ans =
2 4 3
»
MATLAB
» A=[ 1 2 3 4; 5 6 7 8];
» size(A)
ans =
2 4
» B=shiftdim(A,-1);
» size(B)
ans =
1 2 4
» B=shiftdim(A,-2);
» size(B)
ans =
1 1 2 4
» C=shiftdim(B,2);
» size(C)
ans =
2 4
»
65
Matlab à la carte 04/09/2008
MATLAB
» A=cat(3,[ 1 2 3 4; 5 6 7 8], ...
[11 12 13 14; 15 16 17 18], ...
[21 22 23 24; 25 26 27 28]);
» size(A)
ans =
2 4 3
» B=shiftdim(A,1);
» size(B)
ans =
4 3 2
» B=shiftdim(A,2);
» size(B)
ans =
3 2 4
» B=shiftdim(A,3);
» size(B)
ans =
2 4 3
»
MATLAB
» A=[ 1 2 3 4; 5 6 7 8];
» size(A)
ans =
2 4
» B=shiftdim(A,-1);
» size(B)
ans =
1 2 4
» B=shiftdim(A,-2);
» size(B)
ans =
1 1 2 4
» C=shiftdim(B,2);
» size(C)
ans =
2 4
»
65
Matlab à la carte 04/09/2008
Les tableaux
Tableaux élémentaires
MATLAB propose un certain nombre de fonctions
pour créer des tableaux multidimensionnels:
zeros tableau rempli de 0
ones tableau rempli de 1
nan tableau rempli de nan
inf tableau rempli de inf
rand distribution aléatoire uniforme
randn distribution aléatoire gaussienne
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» zeros(3)
ans =
0 0 0
0 0 0
0 0 0
» zeros(2,3)
ans =
0 0 0
0 0 0
» zeros(size(A))
ans =
0 0 0
0 0 0
» zeros(1,3)
ans =
0 0 0
» zeros(size(X))
ans =
0 0 0
»
MATLAB à la carte — module 1: « Initiation » 131 / 216
66
Matlab à la carte 04/09/2008
Les tableaux
Tableaux élémentaires
MATLAB propose un certain nombre de fonctions
pour créer des tableaux multidimensionnels:
zeros tableau rempli de 0
ones tableau rempli de 1
nan tableau rempli de nan
inf tableau rempli de inf
rand distribution aléatoire uniforme
randn distribution aléatoire gaussienne
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» zeros(3)
ans =
0 0 0
0 0 0
0 0 0
» zeros(2,3)
ans =
0 0 0
0 0 0
» zeros(size(A))
ans =
0 0 0
0 0 0
» zeros(1,3)
ans =
0 0 0
» zeros(size(X))
ans =
0 0 0
»
MATLAB à la carte — module 1: « Initiation » 131 / 216
66
Matlab à la carte 04/09/2008
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» ones(3)
ans =
1 1 1
1 1 1
1 1 1
» ones(2,3)
ans =
1 1 1
1 1 1
» ones(size(A))
ans =
1 1 1
1 1 1
» ones(1,3)
ans =
1 1 1
» ones(size(X))
ans =
1 1 1
»
MATLAB à la carte — module 1: « Initiation » 132 / 216
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» nan(3)
ans =
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
» nan(2,3)
ans =
NaN NaN NaN
NaN NaN NaN
» nan(size(A))
ans =
NaN NaN NaN
NaN NaN NaN
» nan(1,3)
ans =
NaN NaN NaN
» nan(size(X))
ans =
NaN NaN NaN
»
MATLAB à la carte — module 1: « Initiation » 133 / 216
67
Matlab à la carte 04/09/2008
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» ones(3)
ans =
1 1 1
1 1 1
1 1 1
» ones(2,3)
ans =
1 1 1
1 1 1
» ones(size(A))
ans =
1 1 1
1 1 1
» ones(1,3)
ans =
1 1 1
» ones(size(X))
ans =
1 1 1
»
MATLAB à la carte — module 1: « Initiation » 132 / 216
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» nan(3)
ans =
NaN NaN NaN
NaN NaN NaN
NaN NaN NaN
» nan(2,3)
ans =
NaN NaN NaN
NaN NaN NaN
» nan(size(A))
ans =
NaN NaN NaN
NaN NaN NaN
» nan(1,3)
ans =
NaN NaN NaN
» nan(size(X))
ans =
NaN NaN NaN
»
MATLAB à la carte — module 1: « Initiation » 133 / 216
67
Matlab à la carte 04/09/2008
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» inf(3)
ans =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf
» inf(2,3)
ans =
Inf Inf Inf
Inf Inf Inf
» inf(size(A))
ans =
Inf Inf Inf
Inf Inf Inf
» inf(1,3)
ans =
Inf Inf Inf
» inf(size(X))
ans =
Inf Inf Inf
»
MATLAB à la carte — module 1: « Initiation » 134 / 216
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» rand('state',0); rand(3)
ans =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» rand('state',0); rand(2,3)
ans =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
» rand('state',0); rand(size(A))
ans =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
» rand('state',0); rand(1,3)
ans =
0.9501 0.2311 0.6068
» rand('state',0); rand(size(X))
ans =
0.9501 0.2311 0.6068
»
68
Matlab à la carte 04/09/2008
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» inf(3)
ans =
Inf Inf Inf
Inf Inf Inf
Inf Inf Inf
» inf(2,3)
ans =
Inf Inf Inf
Inf Inf Inf
» inf(size(A))
ans =
Inf Inf Inf
Inf Inf Inf
» inf(1,3)
ans =
Inf Inf Inf
» inf(size(X))
ans =
Inf Inf Inf
»
MATLAB à la carte — module 1: « Initiation » 134 / 216
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» rand('state',0); rand(3)
ans =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» rand('state',0); rand(2,3)
ans =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
» rand('state',0); rand(size(A))
ans =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
» rand('state',0); rand(1,3)
ans =
0.9501 0.2311 0.6068
» rand('state',0); rand(size(X))
ans =
0.9501 0.2311 0.6068
»
68
Matlab à la carte 04/09/2008
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» randn('state',0); randn(3)
ans =
-0.4326 0.2877 1.1892
-1.6656 -1.1465 -0.0376
0.1253 1.1909 0.3273
» randn('state',0); randn(2,3)
ans =
-0.4326 0.1253 -1.1465
-1.6656 0.2877 1.1909
» randn('state',0); randn(size(A))
ans =
-0.4326 0.1253 -1.1465
-1.6656 0.2877 1.1909
» randn('state',0); randn(1,3)
ans =
-0.4326 -1.6656 0.1253
» randn('state',0); randn(size(X))
ans =
-0.4326 -1.6656 0.1253
»
Les tableaux
Vecteurs élémentaires
MATLAB propose un certain nombre de fonctions
pour créer des vecteurs:
: valeurs régulièrement espacées
linspace valeurs régulièrement espacées
logspace valeurs régulièrement espacées
primes vecteur de nombres premiers
factor décomposition en facteurs premiers
69
Matlab à la carte 04/09/2008
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» randn('state',0); randn(3)
ans =
-0.4326 0.2877 1.1892
-1.6656 -1.1465 -0.0376
0.1253 1.1909 0.3273
» randn('state',0); randn(2,3)
ans =
-0.4326 0.1253 -1.1465
-1.6656 0.2877 1.1909
» randn('state',0); randn(size(A))
ans =
-0.4326 0.1253 -1.1465
-1.6656 0.2877 1.1909
» randn('state',0); randn(1,3)
ans =
-0.4326 -1.6656 0.1253
» randn('state',0); randn(size(X))
ans =
-0.4326 -1.6656 0.1253
»
Les tableaux
Vecteurs élémentaires
MATLAB propose un certain nombre de fonctions
pour créer des vecteurs:
: valeurs régulièrement espacées
linspace valeurs régulièrement espacées
logspace valeurs régulièrement espacées
primes vecteur de nombres premiers
factor décomposition en facteurs premiers
69
Matlab à la carte 04/09/2008
MATLAB
» -3:2
ans =
-3 -2 -1 0 1 2
» -3:1:2
ans =
-3 -2 -1 0 1 2
» -3:0.5:2
ans =
Columns 1 through 7
-3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0.0000
Columns 8 through 11
0.5000 1.0000 1.5000 2.0000
» linspace(-3,2,11)
ans =
Columns 1 through 7
-3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0.0000
Columns 8 through 11
0.5000 1.0000 1.5000 2.0000
»
MATLAB
» 10.^(-3:2)
ans =
0.0010 0.0100 0.1000 1.0000 10.0000 100.0000
» logspace(-3,2,6)
ans =
0.0010 0.0100 0.1000 1.0000 10.0000 100.0000
» logspace(-1,2,10)
ans =
Columns 1 through 7
0.1000 0.2154 0.4642 1.0000 2.1544 4.6416 10.0000
Columns 8 through 10
21.5443 46.4159 100.0000
»
70
Matlab à la carte 04/09/2008
MATLAB
» -3:2
ans =
-3 -2 -1 0 1 2
» -3:1:2
ans =
-3 -2 -1 0 1 2
» -3:0.5:2
ans =
Columns 1 through 7
-3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0.0000
Columns 8 through 11
0.5000 1.0000 1.5000 2.0000
» linspace(-3,2,11)
ans =
Columns 1 through 7
-3.0000 -2.5000 -2.0000 -1.5000 -1.0000 -0.5000 0.0000
Columns 8 through 11
0.5000 1.0000 1.5000 2.0000
»
MATLAB
» 10.^(-3:2)
ans =
0.0010 0.0100 0.1000 1.0000 10.0000 100.0000
» logspace(-3,2,6)
ans =
0.0010 0.0100 0.1000 1.0000 10.0000 100.0000
» logspace(-1,2,10)
ans =
Columns 1 through 7
0.1000 0.2154 0.4642 1.0000 2.1544 4.6416 10.0000
Columns 8 through 10
21.5443 46.4159 100.0000
»
70
Matlab à la carte 04/09/2008
MATLAB
» primes(50)
ans =
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
» factor(120)
ans =
2 2 2 3 5
»
Les tableaux
Matrices élémentaires
MATLAB propose un certain nombre de fonctions
pour créer des matrices:
magic carré magique
spiral valeurs croissantes en spirale
eye matrice identité
diag matrice diagonal
blkdiag matrice bloc diagonale
repmat matrice blocs dupliqués
71
Matlab à la carte 04/09/2008
MATLAB
» primes(50)
ans =
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
» factor(120)
ans =
2 2 2 3 5
»
Les tableaux
Matrices élémentaires
MATLAB propose un certain nombre de fonctions
pour créer des matrices:
magic carré magique
spiral valeurs croissantes en spirale
eye matrice identité
diag matrice diagonal
blkdiag matrice bloc diagonale
repmat matrice blocs dupliqués
71
Matlab à la carte 04/09/2008
MATLAB
» magic(3)
ans =
8 1 6
3 5 7
4 9 2
» magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» magic(5)
ans =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
»
MATLAB
» spiral(3)
ans =
7 8 9
6 1 2
5 4 3
» spiral(4)
ans =
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
» spiral(5)
ans =
21 22 23 24 25
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
»
72
Matlab à la carte 04/09/2008
MATLAB
» magic(3)
ans =
8 1 6
3 5 7
4 9 2
» magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» magic(5)
ans =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
»
MATLAB
» spiral(3)
ans =
7 8 9
6 1 2
5 4 3
» spiral(4)
ans =
7 8 9 10
6 1 2 11
5 4 3 12
16 15 14 13
» spiral(5)
ans =
21 22 23 24 25
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
»
72
Matlab à la carte 04/09/2008
MATLAB
» eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
» eye(3,4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
» eye(4,3)
ans =
1 0 0
0 1 0
0 0 1
0 0 0
»
MATLAB
» diag([1 2 3])
ans =
1 0 0
0 2 0
0 0 3
» diag([1 2 3],0)
ans =
1 0 0
0 2 0
0 0 3
» diag([1 2],1)
ans =
0 1 0
0 0 2
0 0 0
» diag([1 2],-2)
ans =
0 0 0 0
0 0 0 0
1 0 0 0
0 2 0 0
»
73
Matlab à la carte 04/09/2008
MATLAB
» eye(4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
» eye(3,4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
» eye(4,3)
ans =
1 0 0
0 1 0
0 0 1
0 0 0
»
MATLAB
» diag([1 2 3])
ans =
1 0 0
0 2 0
0 0 3
» diag([1 2 3],0)
ans =
1 0 0
0 2 0
0 0 3
» diag([1 2],1)
ans =
0 1 0
0 0 2
0 0 0
» diag([1 2],-2)
ans =
0 0 0 0
0 0 0 0
1 0 0 0
0 2 0 0
»
73
Matlab à la carte 04/09/2008
MATLAB
» blkdiag(eye(2),ones(2))
ans =
1 0 0 0
0 1 0 0
0 0 1 1
0 0 1 1
» blkdiag(eye(2,3),ones(2))
ans =
1 0 0 0 0
0 1 0 0 0
0 0 0 1 1
0 0 0 1 1
» blkdiag(eye(2,3),ones(3,2))
ans =
1 0 0 0 0
0 1 0 0 0
0 0 0 1 1
0 0 0 1 1
0 0 0 1 1
»
MATLAB
» repmat(eye(2),2)
ans =
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
» repmat(eye(2),2,3)
ans =
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
» repmat(eye(2,3),2)
ans =
1 0 0 1 0 0
0 1 0 0 1 0
1 0 0 1 0 0
0 1 0 0 1 0
»
74
Matlab à la carte 04/09/2008
MATLAB
» blkdiag(eye(2),ones(2))
ans =
1 0 0 0
0 1 0 0
0 0 1 1
0 0 1 1
» blkdiag(eye(2,3),ones(2))
ans =
1 0 0 0 0
0 1 0 0 0
0 0 0 1 1
0 0 0 1 1
» blkdiag(eye(2,3),ones(3,2))
ans =
1 0 0 0 0
0 1 0 0 0
0 0 0 1 1
0 0 0 1 1
0 0 0 1 1
»
MATLAB
» repmat(eye(2),2)
ans =
1 0 1 0
0 1 0 1
1 0 1 0
0 1 0 1
» repmat(eye(2),2,3)
ans =
1 0 1 0 1 0
0 1 0 1 0 1
1 0 1 0 1 0
0 1 0 1 0 1
» repmat(eye(2,3),2)
ans =
1 0 0 1 0 0
0 1 0 0 1 0
1 0 0 1 0 0
0 1 0 0 1 0
»
74
Matlab à la carte 04/09/2008
Les tableaux
Matrices spéciales
MATLAB propose un certain nombre de fonctions
pour créer des matrices:
hadamard matrice de Hadamard
hankel matrice de Hankel
hilb matrice de Hilbert
pascal matrice de Pascal
toeplitz matrice de Toeplitz
vander matrice de Vandermonde
wilkinson matrice Wilkinson
MATLAB à la carte — module 1: « Initiation » 148 / 216
Les tableaux
Matrices spéciales
La fonction gallery donne accès à une collection de
matrices tests aux propriétés bien connues de la
communauté de l’algèbre linéaire: tridiagonale, block
diagonal, triangulaire, symétrique, définie positive,
normale, orthogonale, nilpotente, idempotente,
défective…
75
Matlab à la carte 04/09/2008
Les tableaux
Matrices spéciales
MATLAB propose un certain nombre de fonctions
pour créer des matrices:
hadamard matrice de Hadamard
hankel matrice de Hankel
hilb matrice de Hilbert
pascal matrice de Pascal
toeplitz matrice de Toeplitz
vander matrice de Vandermonde
wilkinson matrice Wilkinson
MATLAB à la carte — module 1: « Initiation » 148 / 216
Les tableaux
Matrices spéciales
La fonction gallery donne accès à une collection de
matrices tests aux propriétés bien connues de la
communauté de l’algèbre linéaire: tridiagonale, block
diagonal, triangulaire, symétrique, définie positive,
normale, orthogonale, nilpotente, idempotente,
défective…
75
Matlab à la carte 04/09/2008
Les tableaux
Matrices creuses
MATLAB possède un type de données sparse pour
les matrices creuses (les éléments non nuls sont
stockés avec leurs indices).
Les tableaux
Matrices creuses
Une matrice (pleine) A peut être convertie en matrice
creuse B à l ’aide de la fonction sparse:
>> B = sparse(A);
De la même manière, une matrice creuse B peut être
convertie en matrice (pleine) A à l ’aide de la fonction
full:
>> A = full(B);
76
Matlab à la carte 04/09/2008
Les tableaux
Matrices creuses
MATLAB possède un type de données sparse pour
les matrices creuses (les éléments non nuls sont
stockés avec leurs indices).
Les tableaux
Matrices creuses
Une matrice (pleine) A peut être convertie en matrice
creuse B à l ’aide de la fonction sparse:
>> B = sparse(A);
De la même manière, une matrice creuse B peut être
convertie en matrice (pleine) A à l ’aide de la fonction
full:
>> A = full(B);
76
Matlab à la carte 04/09/2008
MATLAB
» A = diag([1 2 3])
A =
3.1416 0 0
0 6.2832 0
0 0 9.4248
» B = sparse(A)
B =
(1,1) 3.1416
(2,2) 6.2832
(3,3) 9.4248
» C = full(B)
C =
3.1416 0 0
0 6.2832 0
0 0 9.4248
» whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 52 sparse array
C 3x3 72 double array
Grand total is 21 elements using 196 bytes
»
MATLAB
» A = pi*magic(3)
A =
25.1327 3.1416 18.8496
9.4248 15.7080 21.9911
12.5664 28.2743 6.2832
» B = sparse(A)
B =
(1,1) 25.1327
(2,1) 9.4248
(3,1) 12.5664
(1,2) 3.1416
(2,2) 15.7080
(3,2) 28.2743
(1,3) 18.8496
(2,3) 21.9911
(3,3) 6.2832
» whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 124 sparse array
Grand total is 18 elements using 196 bytes
»
77
Matlab à la carte 04/09/2008
MATLAB
» A = diag([1 2 3])
A =
3.1416 0 0
0 6.2832 0
0 0 9.4248
» B = sparse(A)
B =
(1,1) 3.1416
(2,2) 6.2832
(3,3) 9.4248
» C = full(B)
C =
3.1416 0 0
0 6.2832 0
0 0 9.4248
» whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 52 sparse array
C 3x3 72 double array
Grand total is 21 elements using 196 bytes
»
MATLAB
» A = pi*magic(3)
A =
25.1327 3.1416 18.8496
9.4248 15.7080 21.9911
12.5664 28.2743 6.2832
» B = sparse(A)
B =
(1,1) 25.1327
(2,1) 9.4248
(3,1) 12.5664
(1,2) 3.1416
(2,2) 15.7080
(3,2) 28.2743
(1,3) 18.8496
(2,3) 21.9911
(3,3) 6.2832
» whos
Name Size Bytes Class
A 3x3 72 double array
B 3x3 124 sparse array
Grand total is 18 elements using 196 bytes
»
77
Matlab à la carte 04/09/2008
Les tableaux
Manipuler les matrices
MATLAB propose un certain nombre de fonctions
pour manipuler des matrices:
diag diagonales d’une matrice
triu partie triangulaire supérieure
tril partie triangulaire inférieure
rot90 rotation de 90°
flipud miroir vertical
fliplr miroir horizontal
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» diag(A)
ans =
1
3
7
9
» diag(diag(A))
ans =
1 0 0 0
0 3 0 0
0 0 7 0
0 0 0 9
»
78
Matlab à la carte 04/09/2008
Les tableaux
Manipuler les matrices
MATLAB propose un certain nombre de fonctions
pour manipuler des matrices:
diag diagonales d’une matrice
triu partie triangulaire supérieure
tril partie triangulaire inférieure
rot90 rotation de 90°
flipud miroir vertical
fliplr miroir horizontal
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» diag(A)
ans =
1
3
7
9
» diag(diag(A))
ans =
1 0 0 0
0 3 0 0
0 0 7 0
0 0 0 9
»
78
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» diag(A,1)
ans =
2
4
8
» diag(diag(A,1))
ans =
2 0 0
0 4 0
0 0 8
» diag(diag(A,1),1)
ans =
0 2 0 0
0 0 4 0
0 0 0 8
0 0 0 0
»
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» triu(A)
ans =
1 2 1 2
0 3 4 4
0 0 7 8
0 0 0 9
» triu(A,1)
ans =
0 2 1 2
0 0 4 4
0 0 0 8
0 0 0 0
»
79
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» diag(A,1)
ans =
2
4
8
» diag(diag(A,1))
ans =
2 0 0
0 4 0
0 0 8
» diag(diag(A,1),1)
ans =
0 2 0 0
0 0 4 0
0 0 0 8
0 0 0 0
»
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» triu(A)
ans =
1 2 1 2
0 3 4 4
0 0 7 8
0 0 0 9
» triu(A,1)
ans =
0 2 1 2
0 0 4 4
0 0 0 8
0 0 0 0
»
79
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» tril(A)
ans =
1 0 0 0
3 3 0 0
5 6 7 0
0 0 9 9
» tril(A,-1)
ans =
0 0 0 0
3 0 4 0
5 6 0 0
0 0 9 0
»
MATLAB
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» rot90(A)
ans =
3 6
2 5
1 4
» rot90(rot90(A))
ans =
6 5 4
3 2 1
» rot90(rot90(rot90(A)))
ans =
4 1
5 2
6 3
» rot90(rot90(rot90(rot90(A))))
ans =
1 2 3
4 5 6
»
80
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 1 2; 3 3 4 4; 5 6 7 8; 0 0 9 9]
A =
1 2 1 2
3 3 4 4
5 6 7 8
0 0 9 9
» tril(A)
ans =
1 0 0 0
3 3 0 0
5 6 7 0
0 0 9 9
» tril(A,-1)
ans =
0 0 0 0
3 0 4 0
5 6 0 0
0 0 9 0
»
MATLAB
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» rot90(A)
ans =
3 6
2 5
1 4
» rot90(rot90(A))
ans =
6 5 4
3 2 1
» rot90(rot90(rot90(A)))
ans =
4 1
5 2
6 3
» rot90(rot90(rot90(rot90(A))))
ans =
1 2 3
4 5 6
»
80
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» flipud(A)
ans =
4 5 6
1 2 3
» flipud(flipud(A))
ans =
1 2 3
4 5 6
» fliplr(A)
ans =
3 2 1
6 5 4
» fliplr(fliplr(A))
ans =
1 2 3
4 5 6
»
81
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» flipud(A)
ans =
4 5 6
1 2 3
» flipud(flipud(A))
ans =
1 2 3
4 5 6
» fliplr(A)
ans =
3 2 1
6 5 4
» fliplr(fliplr(A))
ans =
1 2 3
4 5 6
»
81
Matlab à la carte 04/09/2008
MATLAB
» s='MATLAB'
s =
MATLAB
» x=double(s)
x =
77 65 84 76 65 66
» ischar(s)
ans =
1
» ischar(x)
ans =
0
» s=char(x+32)
s =
matlab
» char([32:126 145 146 161:255])
ans =
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~‘’¡¢£¤¥¦§¨©ª«¬-®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁ
ÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
»
MATLAB
» s1='MATLAB';
» s2='abc';
» [s1,s2]
ans =
horizontal concatenation
MATLABabc
» cat(2,s1,s2)
ans =
MATLABabc
» [s1;s2]
??? All rows in the bracketed expression must have the same
number of columns.
» cat(1,s1,s2)
??? Error using ==> cat
CAT arguments dimensions are not consistent.
» s2='abc ';
» [s1;s2] vertical concatenation
ans =
MATLAB
abc
» cat(1,s1,s2)
ans =
MATLAB
abc
»
MATLAB à la carte — module 1: « Initiation » 163 / 216
82
Matlab à la carte 04/09/2008
MATLAB
» s='MATLAB'
s =
MATLAB
» x=double(s)
x =
77 65 84 76 65 66
» ischar(s)
ans =
1
» ischar(x)
ans =
0
» s=char(x+32)
s =
matlab
» char([32:126 145 146 161:255])
ans =
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`
abcdefghijklmnopqrstuvwxyz{|}~‘’¡¢£¤¥¦§¨©ª«¬-®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁ
ÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
»
MATLAB
» s1='MATLAB';
» s2='abc';
» [s1,s2]
ans =
horizontal concatenation
MATLABabc
» cat(2,s1,s2)
ans =
MATLABabc
» [s1;s2]
??? All rows in the bracketed expression must have the same
number of columns.
» cat(1,s1,s2)
??? Error using ==> cat
CAT arguments dimensions are not consistent.
» s2='abc ';
» [s1;s2] vertical concatenation
ans =
MATLAB
abc
» cat(1,s1,s2)
ans =
MATLAB
abc
»
MATLAB à la carte — module 1: « Initiation » 163 / 216
82
Matlab à la carte 04/09/2008
MATLAB
» s1='MATLAB';
» s2='abc';
» [s1;s2]
??? All rows in the bracketed expression must have the same
number of columns.
» cat(1,s1,s2)
??? Error using ==> cat
CAT arguments dimensions are not consistent.
» str2mat(s1,s2) vertical concatenation
ans =
MATLAB
abc
» whos ans s1 s2
Name Size Bytes Class
ans 2x6 24 char array
s1 1x6 12 char array
s2 1x3 6 char array
Grand total is 21 elements using 42 bytes
»
83
Matlab à la carte 04/09/2008
MATLAB
» s1='MATLAB';
» s2='abc';
» [s1;s2]
??? All rows in the bracketed expression must have the same
number of columns.
» cat(1,s1,s2)
??? Error using ==> cat
CAT arguments dimensions are not consistent.
» str2mat(s1,s2) vertical concatenation
ans =
MATLAB
abc
» whos ans s1 s2
Name Size Bytes Class
ans 2x6 24 char array
s1 1x6 12 char array
s2 1x3 6 char array
Grand total is 21 elements using 42 bytes
»
83
Matlab à la carte 04/09/2008
MATLAB
» s1='MATLAB';
» s2=blanks(3);
» s3='matlab';
» s4=blanks(3);
» s=[s1, s2, s3, s4]
s =
MATLAB matlab
» isspace(s)
ans =
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1
» s=deblank(s)
s =
MATLAB matlab
» isspace(s)
ans =
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
»
MATLAB
» strcat('MATLAB:','MATrix','LABoratory')
ans =
MATLAB:MATrixLABoratory
» whos ans
Name Size Bytes Class
ans 1x23 46 char array
Grand total is 23 elements using 46 bytes
» strvcat('MATLAB:','MATrix','LABoratory')
ans =
MATLAB:
MATrix
LABoratory
» whos ans
Name Size Bytes Class
ans 3x10 60 char array
Grand total is 30 elements using 60 bytes
»
84
Matlab à la carte 04/09/2008
MATLAB
» s1='MATLAB';
» s2=blanks(3);
» s3='matlab';
» s4=blanks(3);
» s=[s1, s2, s3, s4]
s =
MATLAB matlab
» isspace(s)
ans =
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 1 1 1
» s=deblank(s)
s =
MATLAB matlab
» isspace(s)
ans =
0 0 0 0 0 0 1 1 1 0 0 0 0 0 0
»
MATLAB
» strcat('MATLAB:','MATrix','LABoratory')
ans =
MATLAB:MATrixLABoratory
» whos ans
Name Size Bytes Class
ans 1x23 46 char array
Grand total is 23 elements using 46 bytes
» strvcat('MATLAB:','MATrix','LABoratory')
ans =
MATLAB:
MATrix
LABoratory
» whos ans
Name Size Bytes Class
ans 3x10 60 char array
Grand total is 30 elements using 60 bytes
»
84
Matlab à la carte 04/09/2008
MATLAB
» strcmp('MATLAB','matlab')
ans =
0
» strcmp('MATLAB','MATLAB')
ans =
1
» strncmp('MATLAB','matlab',3)
ans =
0
» strncmp('MATLAB','MATlab',3)
ans =
1
»
MATLAB
» strtok('STRTOK: Find token in string.')
ans =
STRTOK:
» strtok('STRTOK: Find token in string.',':')
ans =
STRTOK
» findstr('STRTOK: Find token in string.','in')
ans =
10 20 26
» findstr('STRTOK: Find token in string.','In')
ans =
[]
»
85
Matlab à la carte 04/09/2008
MATLAB
» strcmp('MATLAB','matlab')
ans =
0
» strcmp('MATLAB','MATLAB')
ans =
1
» strncmp('MATLAB','matlab',3)
ans =
0
» strncmp('MATLAB','MATlab',3)
ans =
1
»
MATLAB
» strtok('STRTOK: Find token in string.')
ans =
STRTOK:
» strtok('STRTOK: Find token in string.',':')
ans =
STRTOK
» findstr('STRTOK: Find token in string.','in')
ans =
10 20 26
» findstr('STRTOK: Find token in string.','In')
ans =
[]
»
85
Matlab à la carte 04/09/2008
MATLAB
» s='MATLAB / matlab'
s =
MATLAB / matlab
» upper(s)
ans =
MATLAB / MATLAB
» lower(s)
ans =
matlab / matlab
»
86
Matlab à la carte 04/09/2008
MATLAB
» s='MATLAB / matlab'
s =
MATLAB / matlab
» upper(s)
ans =
MATLAB / MATLAB
» lower(s)
ans =
matlab / matlab
»
86
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(3)
A =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» S=num2str(A,4)
S =
0.9501 0.486 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» B=str2num(S)
B =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» whos A S B
Name Size Bytes Class
A 3x3 72 double array
B 3x3 72 double array
S 3x26 156 char array
Grand total is 96 elements using 300 bytes
»
87
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(3)
A =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» S=num2str(A,4)
S =
0.9501 0.486 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» B=str2num(S)
B =
0.9501 0.4860 0.4565
0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
» whos A S B
Name Size Bytes Class
A 3x3 72 double array
B 3x3 72 double array
S 3x26 156 char array
Grand total is 96 elements using 300 bytes
»
87
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(2,3)
A =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
» [s,err]=sprintf('%f',A);
» s
s =
0.9501290.2311390.6068430.4859820.8912990.762097
» whos s err
Name Size Bytes Class
s 1x48 96 char array
err 0x0 0 char array
Grand total is 54 elements using 144 bytes
» [s,err]=sprintf('%f ',A);
» s
s =
0.950129 0.231139 0.606843 0.485982 0.891299 0.762097
» whos s err
Name Size Bytes Class
s 1x54 108 char array
err 0x0 0 char array
Grand total is 60 elements using 156 bytes
»
MATLAB à la carte — module 1: « Initiation » 175 / 216
88
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(2,3)
A =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
» [s,err]=sprintf('%f',A);
» s
s =
0.9501290.2311390.6068430.4859820.8912990.762097
» whos s err
Name Size Bytes Class
s 1x48 96 char array
err 0x0 0 char array
Grand total is 54 elements using 144 bytes
» [s,err]=sprintf('%f ',A);
» s
s =
0.950129 0.231139 0.606843 0.485982 0.891299 0.762097
» whos s err
Name Size Bytes Class
s 1x54 108 char array
err 0x0 0 char array
Grand total is 60 elements using 156 bytes
»
MATLAB à la carte — module 1: « Initiation » 175 / 216
88
Matlab à la carte 04/09/2008
MATLAB
» [s,err]=sprintf('%f\n',A);
» s
s =
0.950129
0.231139
0.606843
0.485982
0.891299
0.762097
» [s,err]=sprintf('%f %f\n',A);
» s
s =
0.950129 0.231139
0.606843 0.485982
0.891299 0.762097
» [s,err]=sprintf('%f %f %f\n',A);
» s
s =
0.950129 0.231139 0.606843
0.485982 0.891299 0.762097
»
89
Matlab à la carte 04/09/2008
MATLAB
» [s,err]=sprintf('%f\n',A);
» s
s =
0.950129
0.231139
0.606843
0.485982
0.891299
0.762097
» [s,err]=sprintf('%f %f\n',A);
» s
s =
0.950129 0.231139
0.606843 0.485982
0.891299 0.762097
» [s,err]=sprintf('%f %f %f\n',A);
» s
s =
0.950129 0.231139 0.606843
0.485982 0.891299 0.762097
»
89
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(2,3);
» s=sprintf('%.4f ',A)
s =
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621
» [B,n,err,k]=sscanf(s,'%f');
» B, n, k
B =
0.9501
0.2311
0.6068
0.4859
0.8912
0.7620
n =
6
k =
43
» whos s B err
Name Size Bytes Class
s 1x42 84 char array
B 6x1 48 double array
err 0x0 0 char array
Grand total is 48 elements using 132 bytes
»
MATLAB à la carte — module 1: « Initiation » 179 / 216
90
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(2,3);
» s=sprintf('%.4f ',A)
s =
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621
» [B,n,err,k]=sscanf(s,'%f');
» B, n, k
B =
0.9501
0.2311
0.6068
0.4859
0.8912
0.7620
n =
6
k =
43
» whos s B err
Name Size Bytes Class
s 1x42 84 char array
B 6x1 48 double array
err 0x0 0 char array
Grand total is 48 elements using 132 bytes
»
MATLAB à la carte — module 1: « Initiation » 179 / 216
90
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(2,3);
» s=sprintf('%.4f ',A)
s =
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621
» [B,n,err,k]=sscanf(s,'%f',[2 3]);
» B, n, k
B =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
n =
6
k =
43
» whos s B err
Name Size Bytes Class
s 1x42 84 char array
B 2x3 48 double array
err 0x0 0 char array
Grand total is 48 elements using 132 bytes
»
91
Matlab à la carte 04/09/2008
MATLAB
» rand('state',0); A=rand(2,3);
» s=sprintf('%.4f ',A)
s =
0.9501 0.2311 0.6068 0.4860 0.8913 0.7621
» [B,n,err,k]=sscanf(s,'%f',[2 3]);
» B, n, k
B =
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
n =
6
k =
43
» whos s B err
Name Size Bytes Class
s 1x42 84 char array
B 2x3 48 double array
err 0x0 0 char array
Grand total is 48 elements using 132 bytes
»
91
Matlab à la carte 04/09/2008
MATLAB
» x = 123
x =
123
» s=dec2hex(x,8)
s =
0000007B
» whos x s
Name Size Bytes Class
s 1x8 16 char array
x 1x1 8 double array
Grand total is 9 elements using 24 bytes
» s='7B'
s =
7B
» x=hex2dec(s)
x =
123
» whos x s
Name Size Bytes Class
s 1x2 4 char array
x 1x1 8 double array
Grand total is 3 elements using 12 bytes
»
MATLAB
» x = 123
x =
123
» s=dec2bin(x,8)
s =
01111011
» whos x s
Name Size Bytes Class
s 1x8 16 char array
x 1x1 8 double array
Grand total is 9 elements using 24 bytes
» s='1111011'
s =
1111011
» x=bin2dec(s)
x =
123
» whos x s
Name Size Bytes Class
s 1x7 14 char array
x 1x1 8 double array
Grand total is 8 elements using 22 bytes
»
92
Matlab à la carte 04/09/2008
MATLAB
» x = 123
x =
123
» s=dec2hex(x,8)
s =
0000007B
» whos x s
Name Size Bytes Class
s 1x8 16 char array
x 1x1 8 double array
Grand total is 9 elements using 24 bytes
» s='7B'
s =
7B
» x=hex2dec(s)
x =
123
» whos x s
Name Size Bytes Class
s 1x2 4 char array
x 1x1 8 double array
Grand total is 3 elements using 12 bytes
»
MATLAB
» x = 123
x =
123
» s=dec2bin(x,8)
s =
01111011
» whos x s
Name Size Bytes Class
s 1x8 16 char array
x 1x1 8 double array
Grand total is 9 elements using 24 bytes
» s='1111011'
s =
1111011
» x=bin2dec(s)
x =
123
» whos x s
Name Size Bytes Class
s 1x7 14 char array
x 1x1 8 double array
Grand total is 8 elements using 22 bytes
»
92
Matlab à la carte 04/09/2008
MATLAB
» x = 123
x =
123
» s=dec2base(x,3,8)
s =
00011120
» whos x s
Name Size Bytes Class
s 1x8 16 char array
x 1x1 8 double array
Grand total is 9 elements using 24 bytes
» s='11120'
s =
11120
» x=base2dec(s,3)
x =
123
» whos x s
Name Size Bytes Class
s 1x5 10 char array
x 1x1 8 double array
Grand total is 6 elements using 18 bytes
»
93
Matlab à la carte 04/09/2008
MATLAB
» x = 123
x =
123
» s=dec2base(x,3,8)
s =
00011120
» whos x s
Name Size Bytes Class
s 1x8 16 char array
x 1x1 8 double array
Grand total is 9 elements using 24 bytes
» s='11120'
s =
11120
» x=base2dec(s,3)
x =
123
» whos x s
Name Size Bytes Class
s 1x5 10 char array
x 1x1 8 double array
Grand total is 6 elements using 18 bytes
»
93
Matlab à la carte 04/09/2008
MATLAB
» n=4;
» s=['A=magic(' int2str(n) ')']
s =
A=magic(4)
» eval(s);
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» whos A s
Name Size Bytes Class
A 4x4 128 double array
s 1x10 20 char array
Grand total is 26 elements using 148 bytes
»
94
Matlab à la carte 04/09/2008
MATLAB
» n=4;
» s=['A=magic(' int2str(n) ')']
s =
A=magic(4)
» eval(s);
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» whos A s
Name Size Bytes Class
A 4x4 128 double array
s 1x10 20 char array
Grand total is 26 elements using 148 bytes
»
94
Matlab à la carte 04/09/2008
MATLAB
» A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» s=mat2str(A)
s =
[16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1]
» B=eval(s)
B =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» whos A B s
Name Size Bytes Class
A 4x4 128 double array
B 4x4 128 double array
s 1x43 86 char array
Grand total is 75 elements using 342 bytes
»
Les opérateurs
95
Matlab à la carte 04/09/2008
MATLAB
» A=magic(4)
A =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» s=mat2str(A)
s =
[16 2 3 13; 5 11 10 8; 9 7 6 12; 4 14 15 1]
» B=eval(s)
B =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
» whos A B s
Name Size Bytes Class
A 4x4 128 double array
B 4x4 128 double array
s 1x43 86 char array
Grand total is 75 elements using 342 bytes
»
Les opérateurs
95
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
plus , + plus
uplus , + plus unaire
minus , - moins
uminus , - moins unaire
Les opérateurs + -
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X + Y %% plus(X,Y)
ans =
5 7 9
» X - Y %% minus(X,Y)
ans =
-3 -3 -3
» X + 3 %% plus(X,3)
ans =
4 5 6
» X - 2 %% minus(X,2)
ans =
-1 0 1
»
96
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
plus , + plus
uplus , + plus unaire
minus , - moins
uminus , - moins unaire
Les opérateurs + -
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X + Y %% plus(X,Y)
ans =
5 7 9
» X - Y %% minus(X,Y)
ans =
-3 -3 -3
» X + 3 %% plus(X,3)
ans =
4 5 6
» X - 2 %% minus(X,2)
ans =
-1 0 1
»
96
Matlab à la carte 04/09/2008
Les opérateurs + -
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 1 2; 1 2 1];
»
» A + B %% plus(A,B)
ans =
3 3 5
5 7 7
» A - B %% minus(A,B)
ans =
-1 1 1
3 3 5
» A + 3 %% plus(A,3)
ans =
4 5 6
7 8 9
» A - 2 %% minus(A,2)
ans =
-1 0 1
2 3 4
»
Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
times , .* multiplication tableau
power , .^ exposant tableau
ldivide , .\ division tableau à gauche
rdivide , ./ division tableau à droite
97
Matlab à la carte 04/09/2008
Les opérateurs + -
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 1 2; 1 2 1];
»
» A + B %% plus(A,B)
ans =
3 3 5
5 7 7
» A - B %% minus(A,B)
ans =
-1 1 1
3 3 5
» A + 3 %% plus(A,3)
ans =
4 5 6
7 8 9
» A - 2 %% minus(A,2)
ans =
-1 0 1
2 3 4
»
Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
times , .* multiplication tableau
power , .^ exposant tableau
ldivide , .\ division tableau à gauche
rdivide , ./ division tableau à droite
97
Matlab à la carte 04/09/2008
Les opérateurs .* .^
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X .* Y %% times(X,Y)
ans =
4 10 18
» X .^ Y %% power(X,Y)
ans =
1 32 729
» X .^ 3 %% power(X,3)
ans =
1 8 27
» 3 .^ X %% power(3,X)
ans =
3 9 27
»
Les opérateurs .* .^
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 1 2; 1 2 1];
»
» A .* B %% times(A,B)
ans =
2 2 6
4 10 6
» A .^ B %% power(A,B)
ans =
1 2 9
4 25 6
» A .^ 3 %% power(A,3)
ans =
1 8 27
64 125 216
» 3 .^ A %% power(3,4)
ans =
3 9 27
81 243 729
»
98
Matlab à la carte 04/09/2008
Les opérateurs .* .^
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X .* Y %% times(X,Y)
ans =
4 10 18
» X .^ Y %% power(X,Y)
ans =
1 32 729
» X .^ 3 %% power(X,3)
ans =
1 8 27
» 3 .^ X %% power(3,X)
ans =
3 9 27
»
Les opérateurs .* .^
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 1 2; 1 2 1];
»
» A .* B %% times(A,B)
ans =
2 2 6
4 10 6
» A .^ B %% power(A,B)
ans =
1 2 9
4 25 6
» A .^ 3 %% power(A,3)
ans =
1 8 27
64 125 216
» 3 .^ A %% power(3,4)
ans =
3 9 27
81 243 729
»
98
Matlab à la carte 04/09/2008
Les opérateurs ./ .\
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X ./ Y %% rdivide(X,Y)
ans =
0.25 0.40 0.50
» X .\ Y %% ldivide(X,Y)
ans =
4.00 2.50 2.00
»
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» A ./ B %% rdivide(A,B)
ans =
0.50 1.00 1.50
1.00 1.25 1.50
» A .\ B %% ldivide(A,B)
ans =
2.00 1.00 0.67
1.00 0.80 0.67
»
Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
mtimes , * multiplication
mpower , ^ exposant
mldivide , \ division à gauche
mrdivide , / division à droite
99
Matlab à la carte 04/09/2008
Les opérateurs ./ .\
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X ./ Y %% rdivide(X,Y)
ans =
0.25 0.40 0.50
» X .\ Y %% ldivide(X,Y)
ans =
4.00 2.50 2.00
»
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» A ./ B %% rdivide(A,B)
ans =
0.50 1.00 1.50
1.00 1.25 1.50
» A .\ B %% ldivide(A,B)
ans =
2.00 1.00 0.67
1.00 0.80 0.67
»
Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
mtimes , * multiplication
mpower , ^ exposant
mldivide , \ division à gauche
mrdivide , / division à droite
99
Matlab à la carte 04/09/2008
Les opérateurs *
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X * Y %% mtimes(X,Y)
??? Error using mtimes
Inner matrix dimensions must agree.
» X * Y' %% mtimes(X,Y')
ans =
32
» X' * Y %% mtimes(X',Y)
ans =
4 5 6
8 10 12
12 15 18
» 2 * X %% scalar exception
ans =
2 4 6
»
Les opérateurs *
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» A * B %% mtimes(A,B)
??? Error using mtimes
Inner matrix dimensions must agree.
» A * B' %% mtimes(A,B')
ans =
12 24
30 60
» A' * B %% mtimes(A',B)
ans =
18 18 18
24 24 24
30 30 30
» 2 * A %% scalar exception
ans =
2 4 6
8 10 12
»
100
Matlab à la carte 04/09/2008
Les opérateurs *
MATLAB
» X=[1 2 3];
» Y=[4 5 6];
»
» X * Y %% mtimes(X,Y)
??? Error using mtimes
Inner matrix dimensions must agree.
» X * Y' %% mtimes(X,Y')
ans =
32
» X' * Y %% mtimes(X',Y)
ans =
4 5 6
8 10 12
12 15 18
» 2 * X %% scalar exception
ans =
2 4 6
»
Les opérateurs *
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» A * B %% mtimes(A,B)
??? Error using mtimes
Inner matrix dimensions must agree.
» A * B' %% mtimes(A,B')
ans =
12 24
30 60
» A' * B %% mtimes(A',B)
ans =
18 18 18
24 24 24
30 30 30
» 2 * A %% scalar exception
ans =
2 4 6
8 10 12
»
100
Matlab à la carte 04/09/2008
Les opérateurs *
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» A * X %% mtimes(A,X)
??? Error using mtimes
Inner matrix dimensions must agree.
» A * X' %% mtimes(A,X')
ans =
14
32
»
» X * A %% mtimes(X,A)
??? Error using mtimes
Inner matrix dimensions must agree.
» X * A' %% mtimes(X,A')
ans =
14 32
»
Les opérateurs ^
MATLAB
» A=[1 2 3; 4 5 6];
»
» A ^ 2 %% mpower(A,B)
??? Error using mpower
Matrix must be square.
» A=[1 1 0; 1 0 1; 0 1 1];
»
» A ^ 3 %% mpower(A,3)
ans =
3 3 2
3 2 3
2 3 3
» 4 ^ A %% mpower(4,A)
ans =
7.375 5.250 3.375
5.250 5.500 5.250
3.375 5.250 7.375
»
101
Matlab à la carte 04/09/2008
Les opérateurs *
MATLAB
» X=[1 2 3];
» A=[1 2 3; 4 5 6];
»
» A * X %% mtimes(A,X)
??? Error using mtimes
Inner matrix dimensions must agree.
» A * X' %% mtimes(A,X')
ans =
14
32
»
» X * A %% mtimes(X,A)
??? Error using mtimes
Inner matrix dimensions must agree.
» X * A' %% mtimes(X,A')
ans =
14 32
»
Les opérateurs ^
MATLAB
» A=[1 2 3; 4 5 6];
»
» A ^ 2 %% mpower(A,B)
??? Error using mpower
Matrix must be square.
» A=[1 1 0; 1 0 1; 0 1 1];
»
» A ^ 3 %% mpower(A,3)
ans =
3 3 2
3 2 3
2 3 3
» 4 ^ A %% mpower(4,A)
ans =
7.375 5.250 3.375
5.250 5.500 5.250
3.375 5.250 7.375
»
101
Matlab à la carte 04/09/2008
Les opérateurs \
MATLAB
» A=[1 2 3; 4 5 6; 7 8 9]; x=[1;2;3]; y=A*x
y =
14
32
50
» A \ y %% mldivide(A,y) is the solution of A*x=y
Warning: Matrix is closed to singular or badly scaled.
Results may be inaccurate
ans =
2
0
4
» A=[1 1 3; 4 5 6; 7 8 9]; x=[1;2;3]; y=A*x
y =
12
32
50
» A \ y %% mldivide(A,y) is the solution of A*x=y
ans =
1
2
3
»
Les opérateurs /
MATLAB
» x=[1;2;3];
» y=[4 5 6];
» A=x*y
A =
4 5 6
8 10 12
12 15 18
» A / y %% mrdivide(A,y) is the solution of x*y=A
ans =
1
2
3
» (y' \ A')'
ans =
1
2
3
»
102
Matlab à la carte 04/09/2008
Les opérateurs \
MATLAB
» A=[1 2 3; 4 5 6; 7 8 9]; x=[1;2;3]; y=A*x
y =
14
32
50
» A \ y %% mldivide(A,y) is the solution of A*x=y
Warning: Matrix is closed to singular or badly scaled.
Results may be inaccurate
ans =
2
0
4
» A=[1 1 3; 4 5 6; 7 8 9]; x=[1;2;3]; y=A*x
y =
12
32
50
» A \ y %% mldivide(A,y) is the solution of A*x=y
ans =
1
2
3
»
Les opérateurs /
MATLAB
» x=[1;2;3];
» y=[4 5 6];
» A=x*y
A =
4 5 6
8 10 12
12 15 18
» A / y %% mrdivide(A,y) is the solution of x*y=A
ans =
1
2
3
» (y' \ A')'
ans =
1
2
3
»
102
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs arithmétiques
MATLAB propose aussi des fonctions pour les
produits scalaires et vectoriels:
dot produit scalaire classique
cross produit vectoriel classique
kron produit de Kronecker
MATLAB
» X=[-1; 1; 2; -1];
» Y=[-1; 0; 1; -3];
» dot(X,Y)
ans =
6
» X'*Y
ans =
special case of column vectors
6
» X=[-1; 1; 2];
» Y=[-1; 0; 1];
» cross(X,Y)
ans =
1
-1
1
» cross(Y,X)
ans =
-1
1
-1
»
103
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs arithmétiques
MATLAB propose aussi des fonctions pour les
produits scalaires et vectoriels:
dot produit scalaire classique
cross produit vectoriel classique
kron produit de Kronecker
MATLAB
» X=[-1; 1; 2; -1];
» Y=[-1; 0; 1; -3];
» dot(X,Y)
ans =
6
» X'*Y
ans =
special case of column vectors
6
» X=[-1; 1; 2];
» Y=[-1; 0; 1];
» cross(X,Y)
ans =
1
-1
1
» cross(Y,X)
ans =
-1
1
-1
»
103
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2; 4 8];
» B=[1 2 3; 4 5 6; 7 8 9];
» kron(A,B)
ans =
1 2 3 2 4 6
4 5 6 8 10 12
7 8 9 14 16 18
4 8 12 8 16 24
16 20 24 32 40 48
28 32 36 56 64 72
» kron(B,A)
ans =
1 2 2 4 3 6
4 8 8 16 12 24
4 8 5 10 6 12
16 32 20 40 24 48
7 14 8 16 9 18
28 56 32 64 36 72
»
Les opérateurs
Opérateurs relationnels
MATLAB a 6 opérateurs relationnels:
eq , == égal
ne , ~= différent
lt , < inférieur
gt , > supérieur
le , <= inférieur ou égal
ge , >= supérieur ou égal
104
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2; 4 8];
» B=[1 2 3; 4 5 6; 7 8 9];
» kron(A,B)
ans =
1 2 3 2 4 6
4 5 6 8 10 12
7 8 9 14 16 18
4 8 12 8 16 24
16 20 24 32 40 48
28 32 36 56 64 72
» kron(B,A)
ans =
1 2 2 4 3 6
4 8 8 16 12 24
4 8 5 10 6 12
16 32 20 40 24 48
7 14 8 16 9 18
28 56 32 64 36 72
»
Les opérateurs
Opérateurs relationnels
MATLAB a 6 opérateurs relationnels:
eq , == égal
ne , ~= différent
lt , < inférieur
gt , > supérieur
le , <= inférieur ou égal
ge , >= supérieur ou égal
104
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs relationnels
La comparaison entre scalaire donne 1 si la relation
est vraie, 0 si elle est fausse.
Les comparaisons sont aussi définies entre tableaux
(de mêmes dimensions) ainsi qu’entre un tableau et un
scalaire: dans les deux cas le résultat est un tableau de
0 et de 1.
MATLAB
» A=[1 2 3; 4 5 6];
»
»
» A == 3
ans =
0 0 1
0 0 0
» A ~= 3
ans =
1 1 0
1 1 1
» A > 3
ans =
0 0 0
1 1 1
» A < 3
ans =
1 1 0
0 0 0
» A >= 3
ans =
0 0 1
1 1 1
» A <= 3
ans =
1 1 1
0 0 0
»
MATLAB à la carte — module 1: « Initiation » 209 / 216
105
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs relationnels
La comparaison entre scalaire donne 1 si la relation
est vraie, 0 si elle est fausse.
Les comparaisons sont aussi définies entre tableaux
(de mêmes dimensions) ainsi qu’entre un tableau et un
scalaire: dans les deux cas le résultat est un tableau de
0 et de 1.
MATLAB
» A=[1 2 3; 4 5 6];
»
»
» A == 3
ans =
0 0 1
0 0 0
» A ~= 3
ans =
1 1 0
1 1 1
» A > 3
ans =
0 0 0
1 1 1
» A < 3
ans =
1 1 0
0 0 0
» A >= 3
ans =
0 0 1
1 1 1
» A <= 3
ans =
1 1 1
0 0 0
»
MATLAB à la carte — module 1: « Initiation » 209 / 216
105
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» A == B
ans =
0 1 0
1 0 0
» A ~= B
ans =
1 0 1
0 1 1
» A > B
ans =
0 0 1
0 1 1
» A < B
ans =
1 0 0
0 0 0
» A >= B
ans =
0 1 1
1 1 1
» A <= B
ans =
1 1 0
1 0 0
»
MATLAB à la carte — module 1: « Initiation » 210 / 216
Les opérateurs
Opérateurs logiques
MATLAB a 4 opérateurs logiques: AND 0 1
not , ~ NOT 0 0 0
1 0 1
and , & AND
or , | OR OR 0 1
0 0 1
xor eXclusive OR
1 1 1
XOR 0 1
0 0 1
1 1 0
106
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» A == B
ans =
0 1 0
1 0 0
» A ~= B
ans =
1 0 1
0 1 1
» A > B
ans =
0 0 1
0 1 1
» A < B
ans =
1 0 0
0 0 0
» A >= B
ans =
0 1 1
1 1 1
» A <= B
ans =
1 1 0
1 0 0
»
MATLAB à la carte — module 1: « Initiation » 210 / 216
Les opérateurs
Opérateurs logiques
MATLAB a 4 opérateurs logiques: AND 0 1
not , ~ NOT 0 0 0
1 0 1
and , & AND
or , | OR OR 0 1
0 0 1
xor eXclusive OR
1 1 1
XOR 0 1
0 0 1
1 1 0
106
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3; 4 5 6];
»
»
» (A > 3)
ans =
0 0 0
1 1 1
» ~(A > 3)
ans =
1 1 1
0 0 0
» not(A > 3)
ans =
1 1 1
0 0 0
»
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» (A > 2) & (B > 3)
ans =
0 0 0
1 1 1
» (A > 2) | (B > 3)
ans =
0 0 1
1 1 1
» and(A > 2, B > 3)
ans =
0 0 0
1 1 1
» or(A > 2, B > 3)
ans =
0 0 1
1 1 1
» xor(A > 2, B > 3)
ans =
0 0 1
0 0 0
»
107
Matlab à la carte 04/09/2008
MATLAB
» A=[1 2 3; 4 5 6];
»
»
» (A > 3)
ans =
0 0 0
1 1 1
» ~(A > 3)
ans =
1 1 1
0 0 0
» not(A > 3)
ans =
1 1 1
0 0 0
»
MATLAB
» A=[1 2 3; 4 5 6];
» B=[2 2 2; 4 4 4];
»
» (A > 2) & (B > 3)
ans =
0 0 0
1 1 1
» (A > 2) | (B > 3)
ans =
0 0 1
1 1 1
» and(A > 2, B > 3)
ans =
0 0 0
1 1 1
» or(A > 2, B > 3)
ans =
0 0 1
1 1 1
» xor(A > 2, B > 3)
ans =
0 0 1
0 0 0
»
107
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs logiques
MATLAB a aussi 3 fonctions logiques très utiles:
all test si tous les éléments sont non nuls
any test si quelques éléments sont non nuls
find indices des éléments satisfaisants un test
MATLAB
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» all(A > 2)
ans =
0 0 1
» any(A > 4)
ans =
0 1 1
» k=find(A>3) k=sub2ind(size(A),i,j)
k =
2
4
6
» [i,j]=find(A>3) [i,j]=ind2sub(size(A),k)
i =
2
2
2
j =
1
2
3
»
MATLAB à la carte — module 1: « Initiation » 215 / 216
108
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs logiques
MATLAB a aussi 3 fonctions logiques très utiles:
all test si tous les éléments sont non nuls
any test si quelques éléments sont non nuls
find indices des éléments satisfaisants un test
MATLAB
» A=[1 2 3; 4 5 6]
A =
1 2 3
4 5 6
» all(A > 2)
ans =
0 0 1
» any(A > 4)
ans =
0 1 1
» k=find(A>3) k=sub2ind(size(A),i,j)
k =
2
4
6
» [i,j]=find(A>3) [i,j]=ind2sub(size(A),k)
i =
2
2
2
j =
1
2
3
»
MATLAB à la carte — module 1: « Initiation » 215 / 216
108
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs logiques
MATLAB a un certain nombre de fonctions is*:
isieee; ischar;
islogical; isnumeric;
isreal; isequal;
isempty; issparse;
isfinite; isinf;
isnan.
109
Matlab à la carte 04/09/2008
Les opérateurs
Opérateurs logiques
MATLAB a un certain nombre de fonctions is*:
isieee; ischar;
islogical; isnumeric;
isreal; isequal;
isempty; issparse;
isfinite; isinf;
isnan.
109