Vous êtes sur la page 1sur 218

Matlab à la carte 04/09/2008

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

MATLAB à la carte — module 1: « Initiation » 1 / 216

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

MATLAB à la carte — module 1: « Initiation » 1 / 216

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.

MATLAB à la carte — module 1: « Initiation » 3 / 216

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.

MATLAB à la carte — module 1: « Initiation » 3 / 216

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.

MATLAB à la carte — module 1: « Initiation » 4 / 216

 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).

MATLAB à la carte — module 1: « Initiation » 5 / 216

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.

MATLAB à la carte — module 1: « Initiation » 4 / 216

 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).

MATLAB à la carte — module 1: « Initiation » 5 / 216

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.

MATLAB à la carte — module 1: « Initiation » 6 / 216

 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.

MATLAB propose aussi des commandes pour


construire et utiliser des interfaces graphiques (GUI,
Graphical User Interface).

MATLAB à la carte — module 1: « Initiation » 7 / 216

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.

MATLAB à la carte — module 1: « Initiation » 6 / 216

 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.

MATLAB propose aussi des commandes pour


construire et utiliser des interfaces graphiques (GUI,
Graphical User Interface).

MATLAB à la carte — module 1: « Initiation » 7 / 216

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.

La traduction de programmes écrits avec le langage


MATLAB en C ou en C++ est possible avec
l’utilisation d’un compilateur optionnel (incluant les
librairies mathématiques et graphiques).

MATLAB à la carte — module 1: « Initiation » 8 / 216

 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.

La traduction de programmes écrits avec le langage


MATLAB en C ou en C++ est possible avec
l’utilisation d’un compilateur optionnel (incluant les
librairies mathématiques et graphiques).

MATLAB à la carte — module 1: « Initiation » 8 / 216

 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

MATLAB à la carte — module 1: « Initiation » 11 / 216

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

MATLAB à la carte — module 1: « Initiation » 11 / 216

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.

MATLAB à la carte — module 1: « Initiation » 15 / 216

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.

MATLAB à la carte — module 1: « Initiation » 15 / 216

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…).

MATLAB à la carte — module 1: « Initiation » 17 / 216

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…).

MATLAB à la carte — module 1: « Initiation » 17 / 216

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.

MATLAB à la carte — module 1: « Initiation » 18 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 19 / 216

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.

MATLAB à la carte — module 1: « Initiation » 18 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 19 / 216

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…

MATLAB à la carte — module 1: « Initiation » 20 / 216

 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

MATLAB à la carte — module 1: « Initiation » 21 / 216

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…

MATLAB à la carte — module 1: « Initiation » 20 / 216

 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

MATLAB à la carte — module 1: « Initiation » 21 / 216

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

MATLAB à la carte — module 1: « Initiation » 22 / 216

 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

MATLAB à la carte — module 1: « Initiation » 23 / 216

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

MATLAB à la carte — module 1: « Initiation » 22 / 216

 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

MATLAB à la carte — module 1: « Initiation » 23 / 216

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

MATLAB à la carte — module 1: « Initiation » 24 / 216

 Introduction
Les boîtes à outils
Les tests et les mesures:
 Data Acquisition Toolbox
 Image Acquisition Toolbox
 Instrument Control Toolbox

MATLAB à la carte — module 1: « Initiation » 25 / 216

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

MATLAB à la carte — module 1: « Initiation » 24 / 216

 Introduction
Les boîtes à outils
Les tests et les mesures:
 Data Acquisition Toolbox
 Image Acquisition Toolbox
 Instrument Control Toolbox

MATLAB à la carte — module 1: « Initiation » 25 / 216

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

MATLAB à la carte — module 1: « Initiation » 26 / 216

 Introduction
Les boîtes à outils
Les bases de données:
 Database Toolbox
 MATLAB® Report Generator

MATLAB à la carte — module 1: « Initiation » 27 / 216

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

MATLAB à la carte — module 1: « Initiation » 26 / 216

 Introduction
Les boîtes à outils
Les bases de données:
 Database Toolbox
 MATLAB® Report Generator

MATLAB à la carte — module 1: « Initiation » 27 / 216

14
Matlab à la carte 04/09/2008

 Introduction
Les boîtes à outils
Le calcul distribué:
 Distributed Computing Toolbox
 MATLAB® Distributed Computing Engine

MATLAB à la carte — module 1: « Initiation » 28 / 216

 Introduction
Les boîtes à outils
Le déploiement d’applications:
 MATLAB® Compiler
 Excel Link
 MATLAB® Builder for Excel®
 MATLAB® Builder for Java™

MATLAB à la carte — module 1: « Initiation » 29 / 216

15
Matlab à la carte 04/09/2008

 Introduction
Les boîtes à outils
Le calcul distribué:
 Distributed Computing Toolbox
 MATLAB® Distributed Computing Engine

MATLAB à la carte — module 1: « Initiation » 28 / 216

 Introduction
Les boîtes à outils
Le déploiement d’applications:
 MATLAB® Compiler
 Excel Link
 MATLAB® Builder for Excel®
 MATLAB® Builder for Java™

MATLAB à la carte — module 1: « Initiation » 29 / 216

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

MATLAB à la carte — module 1: « Initiation » 30 / 216

 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

MATLAB à la carte — module 1: « Initiation » 31 / 216

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

MATLAB à la carte — module 1: « Initiation » 30 / 216

 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

MATLAB à la carte — module 1: « Initiation » 31 / 216

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

MATLAB à la carte — module 1: « Initiation » 32 / 216

 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

MATLAB à la carte — module 1: « Initiation » 33 / 216

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

MATLAB à la carte — module 1: « Initiation » 32 / 216

 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

MATLAB à la carte — module 1: « Initiation » 33 / 216

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

MATLAB à la carte — module 1: « Initiation » 34 / 216

 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

MATLAB à la carte — module 1: « Initiation » 35 / 216

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

MATLAB à la carte — module 1: « Initiation » 34 / 216

 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

MATLAB à la carte — module 1: « Initiation » 35 / 216

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

MATLAB à la carte — module 1: « Initiation » 36 / 216

 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

MATLAB à la carte — module 1: « Initiation » 36 / 216

 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.

Le meilleur moyen d’apprendre MATLAB…


…c’est d’utiliser MATLAB!

MATLAB à la carte — module 1: « Initiation » 39 / 216

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.

Le meilleur moyen d’apprendre MATLAB…


…c’est d’utiliser MATLAB!

MATLAB à la carte — module 1: « Initiation » 39 / 216

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 à la carte — module 1: « Initiation » 40 / 216

 Premiers pas 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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» matlabroot
ans =
c:\program files\matlab
»

MATLAB à la carte — module 1: « Initiation » 41 / 216

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 à la carte — module 1: « Initiation » 40 / 216

 Premiers pas 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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» matlabroot
ans =
c:\program files\matlab
»

MATLAB à la carte — module 1: « Initiation » 41 / 216

21
Matlab à la carte 04/09/2008

 Premiers pas 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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» matlabroot
ans =
/usr/local/matlab
»

MATLAB à la carte — module 1: « Initiation » 42 / 216

 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).

MATLAB à la carte — module 1: « Initiation » 43 / 216

22
Matlab à la carte 04/09/2008

 Premiers pas 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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» matlabroot
ans =
/usr/local/matlab
»

MATLAB à la carte — module 1: « Initiation » 42 / 216

 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).

MATLAB à la carte — module 1: « Initiation » 43 / 216

22
Matlab à la carte 04/09/2008

 Premiers pas path

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

 Premiers pas path

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 path

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

 Premiers pas path

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 à la carte — module 1: « Initiation » 46 / 216

 Premiers pas addpath


rmpath

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');

MATLAB à la carte — module 1: « Initiation » 47 / 216

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 à la carte — module 1: « Initiation » 46 / 216

 Premiers pas addpath


rmpath

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');

MATLAB à la carte — module 1: « Initiation » 47 / 216

24
Matlab à la carte 04/09/2008

 Premiers pas addpath


rmpath

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');

MATLAB à la carte — module 1: « Initiation » 48 / 216

 Premiers pas
Information
La commande ver renvoie de l’information au sujet
de MATLAB et des éventuelles boîtes à outils
installées.

MATLAB à la carte — module 1: « Initiation » 49 / 216

25
Matlab à la carte 04/09/2008

 Premiers pas addpath


rmpath

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');

MATLAB à la carte — module 1: « Initiation » 48 / 216

 Premiers pas
Information
La commande ver renvoie de l’information au sujet
de MATLAB et des éventuelles boîtes à outils
installées.

MATLAB à la carte — module 1: « Initiation » 49 / 216

25
Matlab à la carte 04/09/2008

 Premiers pas ver

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» ver
------------------------------
MATLAB Version 7.0.4 on PCWIN
MATLAB License Number: 220597
------------------------------
MATLAB Toolbox Version 7.0 15-JAN-1999
Signal Processing Toolbox Version 4.2 10-JUL-1998
MATLAB Tour Version 1.2 04-SEP-1998
»

MATLAB à la carte — module 1: « Initiation » 50 / 216

 Premiers pas ver

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» ver
------------------------------
MATLAB Version 5.3.0 on IBM_RS
MATLAB Server Hostid: 8086d4f3
MATLAB License Number: 220597
------------------------------
MATLAB Toolbox Version 5.3 15-JAN-1999
Signal Processing Toolbox Version 4.2 10-JUL-1998
MATLAB Tour Version 1.2 04-SEP-1998
»

MATLAB à la carte — module 1: « Initiation » 51 / 216

26
Matlab à la carte 04/09/2008

 Premiers pas ver

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» ver
------------------------------
MATLAB Version 7.0.4 on PCWIN
MATLAB License Number: 220597
------------------------------
MATLAB Toolbox Version 7.0 15-JAN-1999
Signal Processing Toolbox Version 4.2 10-JUL-1998
MATLAB Tour Version 1.2 04-SEP-1998
»

MATLAB à la carte — module 1: « Initiation » 50 / 216

 Premiers pas ver

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» ver
------------------------------
MATLAB Version 5.3.0 on IBM_RS
MATLAB Server Hostid: 8086d4f3
MATLAB License Number: 220597
------------------------------
MATLAB Toolbox Version 5.3 15-JAN-1999
Signal Processing Toolbox Version 4.2 10-JUL-1998
MATLAB Tour Version 1.2 04-SEP-1998
»

MATLAB à la carte — module 1: « Initiation » 51 / 216

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 à la carte — module 1: « Initiation » 52 / 216

 Premiers pas computer

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» computer
ans =
PCWIN PC under Microsoft Windows
» [c,m]=computer
c =
PCWIN PC under Microsoft Windows
m =
268435456 Matrix 16384x16384 !
»

MATLAB à la carte — module 1: « Initiation » 53 / 216

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 à la carte — module 1: « Initiation » 52 / 216

 Premiers pas computer

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» computer
ans =
PCWIN PC under Microsoft Windows
» [c,m]=computer
c =
PCWIN PC under Microsoft Windows
m =
268435456 Matrix 16384x16384 !
»

MATLAB à la carte — module 1: « Initiation » 53 / 216

27
Matlab à la carte 04/09/2008

 Premiers pas computer

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» computer
ans =
IBM_RS IBM RS6000 under AIX
» [c,m]=computer
c =
IBM_RS IBM RS6000 under AIX
m =
2.1475e+09 Matrix 46341x46341 !
»

MATLAB à la carte — module 1: « Initiation » 54 / 216

 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

 Premiers pas computer

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» computer
ans =
IBM_RS IBM RS6000 under AIX
» [c,m]=computer
c =
IBM_RS IBM RS6000 under AIX
m =
2.1475e+09 Matrix 46341x46341 !
»

MATLAB à la carte — module 1: « Initiation » 54 / 216

 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

 Premiers pas pwd cd


dir ls

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» pwd
ans =
d:\user\anterrieu\matlab
» cd 'c:\program files\matlab'
» cd 'toolbox'
» cd
c:\program files\matlab\toolbox
» dir
. .. local matlab signal tour
» ls
. .. local matlab signal tour
»

MATLAB à la carte — module 1: « Initiation » 56 / 216

 Premiers pas pwd cd


dir ls

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» pwd
ans =
/user/anterrieu/matlab
» cd '/usr/local/matlab'
» cd 'toolbox'
» cd
/usr/local/matlab/toolbox
» dir
. .. local matlab signal tour
» ls
ans =
local/
matlab/
signal/
tour/
»

MATLAB à la carte — module 1: « Initiation » 57 / 216

29
Matlab à la carte 04/09/2008

 Premiers pas pwd cd


dir ls

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» pwd
ans =
d:\user\anterrieu\matlab
» cd 'c:\program files\matlab'
» cd 'toolbox'
» cd
c:\program files\matlab\toolbox
» dir
. .. local matlab signal tour
» ls
. .. local matlab signal tour
»

MATLAB à la carte — module 1: « Initiation » 56 / 216

 Premiers pas pwd cd


dir ls

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» pwd
ans =
/user/anterrieu/matlab
» cd '/usr/local/matlab'
» cd 'toolbox'
» cd
/usr/local/matlab/toolbox
» dir
. .. local matlab signal tour
» ls
ans =
local/
matlab/
signal/
tour/
»

MATLAB à la carte — module 1: « Initiation » 57 / 216

29
Matlab à la carte 04/09/2008

 Premiers pas dos


unix

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

 Premiers pas dos


unix

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

MATLAB à la carte — module 1: « Initiation » 59 / 216

30
Matlab à la carte 04/09/2008

 Premiers pas dos


unix

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

 Premiers pas dos


unix

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

MATLAB à la carte — module 1: « Initiation » 59 / 216

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 à la carte — module 1: « Initiation » 60 / 216

 Premiers pas help

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".
»

MATLAB à la carte — module 1: « Initiation » 61 / 216

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 à la carte — module 1: « Initiation » 60 / 216

 Premiers pas help

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".
»

MATLAB à la carte — module 1: « Initiation » 61 / 216

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

 Premiers pas diary

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» diary('session.txt');
» computer
ans =
PCWIN
» ver
-----------------------------
MATLAB Version 5.3.0 on PCWIN
MATLAB License Number: 220597
-----------------------------
MATLAB Toolbox Version 5.3 15-JAN-1999
Signal Processing Toolbox Version 4.2 10-JUL-1998
MATLAB Tour Version 1.2 04-SEP-1998
» diary off;

MATLAB à la carte — module 1: « Initiation » 63 / 216

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

 Premiers pas diary

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» diary('session.txt');
» computer
ans =
PCWIN
» ver
-----------------------------
MATLAB Version 5.3.0 on PCWIN
MATLAB License Number: 220597
-----------------------------
MATLAB Toolbox Version 5.3 15-JAN-1999
Signal Processing Toolbox Version 4.2 10-JUL-1998
MATLAB Tour Version 1.2 04-SEP-1998
» diary off;

MATLAB à la carte — module 1: « Initiation » 63 / 216

32
Matlab à la carte 04/09/2008

 Premiers pas diary

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

MATLAB à la carte — module 1: « Initiation » 64 / 216

 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

MATLAB à la carte — module 1: « Initiation » 65 / 216

33
Matlab à la carte 04/09/2008

 Premiers pas diary

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

MATLAB à la carte — module 1: « Initiation » 64 / 216

 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

MATLAB à la carte — module 1: « Initiation » 65 / 216

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.

MATLAB à la carte — module 1: « Initiation » 66 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 66 / 216

 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 who


clear

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» a=2.5737902; scalar
» x=[0.1 0.2 0.3]; vector
» A=[1 -1; -1 1]; matrix
» t='How are you?'; string
» whos
Name Size Bytes Class
A 2x2 32 double array
a 1x1 8 double array
t 1x12 24 char array
x 1x3 24 double array
Grand total is 20 elements using 88 bytes
» clear A
» who
Your variables are:
a t x
» clear all
»
MATLAB à la carte — module 1: « Initiation » 68 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 69 / 216

35
Matlab à la carte 04/09/2008

 Premiers pas who


clear

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

To get started, type one of these: helpwin, helpdesk, or demo.


For product information, visit www.mathworks.com.
» a=2.5737902; scalar
» x=[0.1 0.2 0.3]; vector
» A=[1 -1; -1 1]; matrix
» t='How are you?'; string
» whos
Name Size Bytes Class
A 2x2 32 double array
a 1x1 8 double array
t 1x12 24 char array
x 1x3 24 double array
Grand total is 20 elements using 88 bytes
» clear A
» who
Your variables are:
a t x
» clear all
»
MATLAB à la carte — module 1: « Initiation » 68 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 69 / 216

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.

MATLAB à la carte — module 1: « Initiation » 70 / 216

 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;

MATLAB à la carte — module 1: « Initiation » 71 / 216

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.

MATLAB à la carte — module 1: « Initiation » 70 / 216

 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;

MATLAB à la carte — module 1: « Initiation » 71 / 216

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 à la carte — module 1: « Initiation » 72 / 216

 Premiers pas eps

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
»

MATLAB à la carte — module 1: « Initiation » 73 / 216

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 à la carte — module 1: « Initiation » 72 / 216

 Premiers pas eps

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
»

MATLAB à la carte — module 1: « Initiation » 73 / 216

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

 Premiers pas inf nan

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
»

MATLAB à la carte — module 1: « Initiation » 75 / 216

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

 Premiers pas inf nan

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
»

MATLAB à la carte — module 1: « Initiation » 75 / 216

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

 Premiers pas format

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

 Premiers pas format

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.

MATLAB à la carte — module 1: « Initiation » 78 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 78 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 80 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 81 / 216

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.

MATLAB à la carte — module 1: « Initiation » 80 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 81 / 216

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.

 Les éléments d’un tableau peuvent être n’importe


quelle expression MATLAB, y compris un tableau!
MATLAB à la carte — module 1: « Initiation » 83 / 216

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.

 Les éléments d’un tableau peuvent être n’importe


quelle expression MATLAB, y compris un tableau!
MATLAB à la carte — module 1: « Initiation » 83 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 84 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 85 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 84 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 85 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 86 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 86 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 88 / 216

 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

MATLAB à la carte — module 1: « Initiation » 89 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 88 / 216

 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

MATLAB à la carte — module 1: « Initiation » 89 / 216

45
Matlab à la carte 04/09/2008

 Les tableaux ' .'

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 à la carte — module 1: « Initiation » 90 / 216

 Les tableaux ' .'

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
»

MATLAB à la carte — module 1: « Initiation » 91 / 216

46
Matlab à la carte 04/09/2008

 Les tableaux ' .'

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 à la carte — module 1: « Initiation » 90 / 216

 Les tableaux ' .'

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
»

MATLAB à la carte — module 1: « Initiation » 91 / 216

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).

MATLAB à la carte — module 1: « Initiation » 92 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 93 / 216

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).

MATLAB à la carte — module 1: « Initiation » 92 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 93 / 216

47
Matlab à la carte 04/09/2008

 Les tableaux () : end

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 à la carte — module 1: « Initiation » 94 / 216

 Les tableaux () : end

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
»

MATLAB à la carte — module 1: « Initiation » 95 / 216

48
Matlab à la carte 04/09/2008

 Les tableaux () : end

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 à la carte — module 1: « Initiation » 94 / 216

 Les tableaux () : end

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
»

MATLAB à la carte — module 1: « Initiation » 95 / 216

48
Matlab à la carte 04/09/2008

 Les tableaux () end

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 à la carte — module 1: « Initiation » 96 / 216

 Les tableaux () end

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
»

MATLAB à la carte — module 1: « Initiation » 97 / 216

49
Matlab à la carte 04/09/2008

 Les tableaux () end

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 à la carte — module 1: « Initiation » 96 / 216

 Les tableaux () end

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
»

MATLAB à la carte — module 1: « Initiation » 97 / 216

49
Matlab à la carte 04/09/2008

 Les tableaux () : end

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
»

MATLAB à la carte — module 1: « Initiation » 98 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 99 / 216

50
Matlab à la carte 04/09/2008

 Les tableaux () : end

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
»

MATLAB à la carte — module 1: « Initiation » 98 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 99 / 216

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 à la carte — module 1: « Initiation » 100 / 216

 Les tableaux (:)

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
»

MATLAB à la carte — module 1: « Initiation » 101 / 216

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 à la carte — module 1: « Initiation » 100 / 216

 Les tableaux (:)

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
»

MATLAB à la carte — module 1: « Initiation » 101 / 216

51
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]
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
»

MATLAB à la carte — module 1: « Initiation » 102 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 103 / 216

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]
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
»

MATLAB à la carte — module 1: « Initiation » 102 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 103 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 104 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 105 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 104 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 105 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 106 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 107 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 106 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 107 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 108 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 109 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 108 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 109 / 216

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.

Le nombre de dimensions d’un tableau est retourné


par la fonction ndims, tandis que son profil est
retourné dans un vecteur par la fonction size.

MATLAB à la carte — module 1: « Initiation » 110 / 216

 Les tableaux 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
»

MATLAB à la carte — module 1: « Initiation » 111 / 216

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.

Le nombre de dimensions d’un tableau est retourné


par la fonction ndims, tandis que son profil est
retourné dans un vecteur par la fonction size.

MATLAB à la carte — module 1: « Initiation » 110 / 216

 Les tableaux 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
»

MATLAB à la carte — module 1: « Initiation » 111 / 216

56
Matlab à la carte 04/09/2008

 Les tableaux ndims


size

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 à la carte — module 1: « Initiation » 112 / 216

 Les tableaux cat

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
»

MATLAB à la carte — module 1: « Initiation » 113 / 216

57
Matlab à la carte 04/09/2008

 Les tableaux ndims


size

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 à la carte — module 1: « Initiation » 112 / 216

 Les tableaux cat

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
»

MATLAB à la carte — module 1: « Initiation » 113 / 216

57
Matlab à la carte 04/09/2008

 Les tableaux cat

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
»

MATLAB à la carte — module 1: « Initiation » 114 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 115 / 216

58
Matlab à la carte 04/09/2008

 Les tableaux cat

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
»

MATLAB à la carte — module 1: « Initiation » 114 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 115 / 216

58
Matlab à la carte 04/09/2008

 Les tableaux sub2ind


ind2sub

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
»

MATLAB à la carte — module 1: « Initiation » 116 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 117 / 216

59
Matlab à la carte 04/09/2008

 Les tableaux sub2ind


ind2sub

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
»

MATLAB à la carte — module 1: « Initiation » 116 / 216

 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.

MATLAB à la carte — module 1: « Initiation » 117 / 216

59
Matlab à la carte 04/09/2008

 Les tableaux permute

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 à la carte — module 1: « Initiation » 118 / 216

 Les tableaux permute

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

 Les tableaux permute

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 à la carte — module 1: « Initiation » 118 / 216

 Les tableaux permute

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

 Les tableaux permute

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 à la carte — module 1: « Initiation » 120 / 216

 Les tableaux ipermute

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
»

MATLAB à la carte — module 1: « Initiation » 121 / 216

61
Matlab à la carte 04/09/2008

 Les tableaux permute

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 à la carte — module 1: « Initiation » 120 / 216

 Les tableaux ipermute

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
»

MATLAB à la carte — module 1: « Initiation » 121 / 216

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 à la carte — module 1: « Initiation » 122 / 216

 Les tableaux reshape

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
»

MATLAB à la carte — module 1: « Initiation » 123 / 216

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 à la carte — module 1: « Initiation » 122 / 216

 Les tableaux reshape

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
»

MATLAB à la carte — module 1: « Initiation » 123 / 216

62
Matlab à la carte 04/09/2008

 Les tableaux reshape

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
»

MATLAB à la carte — module 1: « Initiation » 124 / 216

 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!

MATLAB à la carte — module 1: « Initiation » 125 / 216

63
Matlab à la carte 04/09/2008

 Les tableaux reshape

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
»

MATLAB à la carte — module 1: « Initiation » 124 / 216

 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!

MATLAB à la carte — module 1: « Initiation » 125 / 216

63
Matlab à la carte 04/09/2008

 Les tableaux squeeze

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.

MATLAB à la carte — module 1: « Initiation » 127 / 216

64
Matlab à la carte 04/09/2008

 Les tableaux squeeze

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.

MATLAB à la carte — module 1: « Initiation » 127 / 216

64
Matlab à la carte 04/09/2008

 Les tableaux shiftdim

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 à la carte — module 1: « Initiation » 128 / 216

 Les tableaux shiftdim

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
»

MATLAB à la carte — module 1: « Initiation » 129 / 216

65
Matlab à la carte 04/09/2008

 Les tableaux shiftdim

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 à la carte — module 1: « Initiation » 128 / 216

 Les tableaux shiftdim

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
»

MATLAB à la carte — module 1: « Initiation » 129 / 216

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 à la carte — module 1: « Initiation » 130 / 216

 Les tableaux zeros

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 à la carte — module 1: « Initiation » 130 / 216

 Les tableaux zeros

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 ones

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

 Les tableaux nan

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

 Les tableaux ones

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

 Les tableaux nan

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

 Les tableaux inf

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

 Les tableaux rand

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
»

MATLAB à la carte — module 1: « Initiation » 135 / 216

68
Matlab à la carte 04/09/2008

 Les tableaux inf

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

 Les tableaux rand

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
»

MATLAB à la carte — module 1: « Initiation » 135 / 216

68
Matlab à la carte 04/09/2008

 Les tableaux randn

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
»

MATLAB à la carte — module 1: « Initiation » 136 / 216

 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

MATLAB à la carte — module 1: « Initiation » 137 / 216

69
Matlab à la carte 04/09/2008

 Les tableaux randn

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
»

MATLAB à la carte — module 1: « Initiation » 136 / 216

 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

MATLAB à la carte — module 1: « Initiation » 137 / 216

69
Matlab à la carte 04/09/2008

 Les tableaux linspace

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 à la carte — module 1: « Initiation » 138 / 216

 Les tableaux logspace

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
»

MATLAB à la carte — module 1: « Initiation » 139 / 216

70
Matlab à la carte 04/09/2008

 Les tableaux linspace

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 à la carte — module 1: « Initiation » 138 / 216

 Les tableaux logspace

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
»

MATLAB à la carte — module 1: « Initiation » 139 / 216

70
Matlab à la carte 04/09/2008

 Les tableaux primes


factor

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
»

MATLAB à la carte — module 1: « Initiation » 140 / 216

 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

MATLAB à la carte — module 1: « Initiation » 141 / 216

71
Matlab à la carte 04/09/2008

 Les tableaux primes


factor

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
»

MATLAB à la carte — module 1: « Initiation » 140 / 216

 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

MATLAB à la carte — module 1: « Initiation » 141 / 216

71
Matlab à la carte 04/09/2008

 Les tableaux magic

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 à la carte — module 1: « Initiation » 142 / 216

 Les tableaux spiral

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
»

MATLAB à la carte — module 1: « Initiation » 143 / 216

72
Matlab à la carte 04/09/2008

 Les tableaux magic

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 à la carte — module 1: « Initiation » 142 / 216

 Les tableaux spiral

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
»

MATLAB à la carte — module 1: « Initiation » 143 / 216

72
Matlab à la carte 04/09/2008

 Les tableaux eye

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 à la carte — module 1: « Initiation » 144 / 216

 Les tableaux diag

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
»

MATLAB à la carte — module 1: « Initiation » 145 / 216

73
Matlab à la carte 04/09/2008

 Les tableaux eye

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 à la carte — module 1: « Initiation » 144 / 216

 Les tableaux diag

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
»

MATLAB à la carte — module 1: « Initiation » 145 / 216

73
Matlab à la carte 04/09/2008

 Les tableaux blkdiag

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 à la carte — module 1: « Initiation » 146 / 216

 Les tableaux repmat

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
»

MATLAB à la carte — module 1: « Initiation » 147 / 216

74
Matlab à la carte 04/09/2008

 Les tableaux blkdiag

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 à la carte — module 1: « Initiation » 146 / 216

 Les tableaux repmat

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
»

MATLAB à la carte — module 1: « Initiation » 147 / 216

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…

MATLAB à la carte — module 1: « Initiation » 149 / 216

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…

MATLAB à la carte — module 1: « Initiation » 149 / 216

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).

MATLAB à la carte — module 1: « Initiation » 150 / 216

 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);

MATLAB à la carte — module 1: « Initiation » 151 / 216

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).

MATLAB à la carte — module 1: « Initiation » 150 / 216

 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);

MATLAB à la carte — module 1: « Initiation » 151 / 216

76
Matlab à la carte 04/09/2008

 Les tableaux sparse


full

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 à la carte — module 1: « Initiation » 152 / 216

 Les tableaux sparse


full

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
»

MATLAB à la carte — module 1: « Initiation » 153 / 216

77
Matlab à la carte 04/09/2008

 Les tableaux sparse


full

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 à la carte — module 1: « Initiation » 152 / 216

 Les tableaux sparse


full

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
»

MATLAB à la carte — module 1: « Initiation » 153 / 216

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 à la carte — module 1: « Initiation » 154 / 216

 Les tableaux diag

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
»

MATLAB à la carte — module 1: « Initiation » 155 / 216

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 à la carte — module 1: « Initiation » 154 / 216

 Les tableaux diag

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
»

MATLAB à la carte — module 1: « Initiation » 155 / 216

78
Matlab à la carte 04/09/2008

 Les tableaux diag

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 à la carte — module 1: « Initiation » 156 / 216

 Les tableaux triu

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
»

MATLAB à la carte — module 1: « Initiation » 157 / 216

79
Matlab à la carte 04/09/2008

 Les tableaux diag

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 à la carte — module 1: « Initiation » 156 / 216

 Les tableaux triu

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
»

MATLAB à la carte — module 1: « Initiation » 157 / 216

79
Matlab à la carte 04/09/2008

 Les tableaux tril

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 à la carte — module 1: « Initiation » 158 / 216

 Les tableaux rot90

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
»

MATLAB à la carte — module 1: « Initiation » 159 / 216

80
Matlab à la carte 04/09/2008

 Les tableaux tril

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 à la carte — module 1: « Initiation » 158 / 216

 Les tableaux rot90

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
»

MATLAB à la carte — module 1: « Initiation » 159 / 216

80
Matlab à la carte 04/09/2008

 Les tableaux flipud


fliplr

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
»

MATLAB à la carte — module 1: « Initiation » 160 / 216

 Les chaines de caractères

Les chaînes de caractères sont des tableaux de


caractères représentés par leur code ASCII.
Une chaîne peut être créée en plaçant les caractères
entre guillemets simples ’ ou bien en appliquant la
fonction char à un tableau d’entiers positifs.

MATLAB à la carte — module 1: « Initiation » 161 / 216

81
Matlab à la carte 04/09/2008

 Les tableaux flipud


fliplr

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
»

MATLAB à la carte — module 1: « Initiation » 160 / 216

 Les chaines de caractères

Les chaînes de caractères sont des tableaux de


caractères représentés par leur code ASCII.
Une chaîne peut être créée en plaçant les caractères
entre guillemets simples ’ ou bien en appliquant la
fonction char à un tableau d’entiers positifs.

MATLAB à la carte — module 1: « Initiation » 161 / 216

81
Matlab à la carte 04/09/2008

 Les chaines de caractères char

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 à la carte — module 1: « Initiation » 162 / 216

 Les chaines de caractères [] , ;

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

 Les chaines de caractères char

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 à la carte — module 1: « Initiation » 162 / 216

 Les chaines de caractères [] , ;

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

 Les chaines de caractères str2mat

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
»

MATLAB à la carte — module 1: « Initiation » 164 / 216

 Les chaines de caractères


Manipulation
MATLAB propose des fonctions pour manipuler les
chaînes de caractères:
 blanks chaîne avec des blancs
 deblank suppression des blancs
 strcat , strvcat concaténation
 strcmp , strncmp comparaison
 strtok , findstr recherche

MATLAB à la carte — module 1: « Initiation » 165 / 216

83
Matlab à la carte 04/09/2008

 Les chaines de caractères str2mat

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
»

MATLAB à la carte — module 1: « Initiation » 164 / 216

 Les chaines de caractères


Manipulation
MATLAB propose des fonctions pour manipuler les
chaînes de caractères:
 blanks chaîne avec des blancs
 deblank suppression des blancs
 strcat , strvcat concaténation
 strcmp , strncmp comparaison
 strtok , findstr recherche

MATLAB à la carte — module 1: « Initiation » 165 / 216

83
Matlab à la carte 04/09/2008

 Les chaines de caractères blanks


deblank

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 à la carte — module 1: « Initiation » 166 / 216

 Les chaines de caractères strcat


strvcat

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
»

MATLAB à la carte — module 1: « Initiation » 167 / 216

84
Matlab à la carte 04/09/2008

 Les chaines de caractères blanks


deblank

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 à la carte — module 1: « Initiation » 166 / 216

 Les chaines de caractères strcat


strvcat

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
»

MATLAB à la carte — module 1: « Initiation » 167 / 216

84
Matlab à la carte 04/09/2008

 Les chaines de caractères strcmp


strncmp

MATLAB
» strcmp('MATLAB','matlab')
ans =
0
» strcmp('MATLAB','MATLAB')
ans =
1
» strncmp('MATLAB','matlab',3)
ans =
0
» strncmp('MATLAB','MATlab',3)
ans =
1
»

MATLAB à la carte — module 1: « Initiation » 168 / 216

 Les chaines de caractères strtok


findstr

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 =
[]
»

MATLAB à la carte — module 1: « Initiation » 169 / 216

85
Matlab à la carte 04/09/2008

 Les chaines de caractères strcmp


strncmp

MATLAB
» strcmp('MATLAB','matlab')
ans =
0
» strcmp('MATLAB','MATLAB')
ans =
1
» strncmp('MATLAB','matlab',3)
ans =
0
» strncmp('MATLAB','MATlab',3)
ans =
1
»

MATLAB à la carte — module 1: « Initiation » 168 / 216

 Les chaines de caractères strtok


findstr

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 =
[]
»

MATLAB à la carte — module 1: « Initiation » 169 / 216

85
Matlab à la carte 04/09/2008

 Les chaines de caractères


Conversion
MATLAB propose des fonctions pour la conversion
des chaînes de caractères:
 upper conversion en majuscules
 lower conversion en minuscules
 num2str conversion d’un nombre en chaîne
 str2num conversion d’une chaîne en nombre
 sprintf écriture formatée
 sscanf lecture formatée

MATLAB à la carte — module 1: « Initiation » 170 / 216

 Les chaines de caractères upper


lower

MATLAB
» s='MATLAB / matlab'
s =
MATLAB / matlab
» upper(s)
ans =
MATLAB / MATLAB
» lower(s)
ans =
matlab / matlab
»

MATLAB à la carte — module 1: « Initiation » 171 / 216

86
Matlab à la carte 04/09/2008

 Les chaines de caractères


Conversion
MATLAB propose des fonctions pour la conversion
des chaînes de caractères:
 upper conversion en majuscules
 lower conversion en minuscules
 num2str conversion d’un nombre en chaîne
 str2num conversion d’une chaîne en nombre
 sprintf écriture formatée
 sscanf lecture formatée

MATLAB à la carte — module 1: « Initiation » 170 / 216

 Les chaines de caractères upper


lower

MATLAB
» s='MATLAB / matlab'
s =
MATLAB / matlab
» upper(s)
ans =
MATLAB / MATLAB
» lower(s)
ans =
matlab / matlab
»

MATLAB à la carte — module 1: « Initiation » 171 / 216

86
Matlab à la carte 04/09/2008

 Les chaines de caractères num2str


str2num

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
»

MATLAB à la carte — module 1: « Initiation » 172 / 216

 Les chaines de caractères


Ecriture formatée
La fonction sprintf se comporte comme sa sœur du
langage C:
>> [s,err]=sprintf(fmt,A,…);
les valeurs de A (et de tout autre argument) sont écrites
sous le format contrôlé par fmt dans la chaîne s.
La variable (optionnelle) err retourne un message
d’erreur en cas de problème, sinon [].

MATLAB à la carte — module 1: « Initiation » 173 / 216

87
Matlab à la carte 04/09/2008

 Les chaines de caractères num2str


str2num

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
»

MATLAB à la carte — module 1: « Initiation » 172 / 216

 Les chaines de caractères


Ecriture formatée
La fonction sprintf se comporte comme sa sœur du
langage C:
>> [s,err]=sprintf(fmt,A,…);
les valeurs de A (et de tout autre argument) sont écrites
sous le format contrôlé par fmt dans la chaîne s.
La variable (optionnelle) err retourne un message
d’erreur en cas de problème, sinon [].

MATLAB à la carte — module 1: « Initiation » 173 / 216

87
Matlab à la carte 04/09/2008

 Les chaines de caractères


Ecriture formatée
Cependant, la version MATLAB de sprintf est
vectorisée pour les cas où A n’est pas un scalaire mais
un tableau:
>> [s,err]=sprintf(fmt,A,…);
Le format fmt est recyclé pour tous les éléments de
A(:) jusqu’à ce que tous les éléments aient été
parcourus.

MATLAB à la carte — module 1: « Initiation » 174 / 216

 Les chaines de caractères sprintf

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

 Les chaines de caractères


Ecriture formatée
Cependant, la version MATLAB de sprintf est
vectorisée pour les cas où A n’est pas un scalaire mais
un tableau:
>> [s,err]=sprintf(fmt,A,…);
Le format fmt est recyclé pour tous les éléments de
A(:) jusqu’à ce que tous les éléments aient été
parcourus.

MATLAB à la carte — module 1: « Initiation » 174 / 216

 Les chaines de caractères sprintf

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

 Les chaines de caractères sprintf

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
»

MATLAB à la carte — module 1: « Initiation » 176 / 216

 Les chaines de caractères


Lecture formatée
La fonction sscanf se comporte comme sa sœur du
langage C:
>> [A,n,err,k]=sscanf(s,fmt,size);
les données sont lus depuis la chaîne s sous le format
contrôlé par fmt et écrites dans A.
Les variables optionnelles n et k retournent le nombre
d’élément correctement lus et le nombre de caractères
parcourus dans s.

MATLAB à la carte — module 1: « Initiation » 177 / 216

89
Matlab à la carte 04/09/2008

 Les chaines de caractères sprintf

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
»

MATLAB à la carte — module 1: « Initiation » 176 / 216

 Les chaines de caractères


Lecture formatée
La fonction sscanf se comporte comme sa sœur du
langage C:
>> [A,n,err,k]=sscanf(s,fmt,size);
les données sont lus depuis la chaîne s sous le format
contrôlé par fmt et écrites dans A.
Les variables optionnelles n et k retournent le nombre
d’élément correctement lus et le nombre de caractères
parcourus dans s.

MATLAB à la carte — module 1: « Initiation » 177 / 216

89
Matlab à la carte 04/09/2008

 Les chaines de caractères


Lecture formatée
Cependant, la version MATLAB de sscanf est
vectorisée pour les cas où A n’est pas un scalaire mais
un tableau:
>> [A,n,err,k]=sscanf(s,fmt,size);
Le format fmt est recyclé à travers la chaîne s
jusqu’à atteindre la fin de la chaîne ou avoir lu le
nombre d’éléments spécifiés par l’argument optionnel
size.

MATLAB à la carte — module 1: « Initiation » 178 / 216

 Les chaines de caractères sscanf

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

 Les chaines de caractères


Lecture formatée
Cependant, la version MATLAB de sscanf est
vectorisée pour les cas où A n’est pas un scalaire mais
un tableau:
>> [A,n,err,k]=sscanf(s,fmt,size);
Le format fmt est recyclé à travers la chaîne s
jusqu’à atteindre la fin de la chaîne ou avoir lu le
nombre d’éléments spécifiés par l’argument optionnel
size.

MATLAB à la carte — module 1: « Initiation » 178 / 216

 Les chaines de caractères sscanf

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

 Les chaines de caractères sscanf

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
»

MATLAB à la carte — module 1: « Initiation » 180 / 216

 Les chaines de caractères


Conversion des nombres
MATLAB propose des fonctions pour la conversion
des nombres:
 hex2dec hexadécimal vers décimal
 dec2hex décimal vers hexadécimal
 bin2dec binaire vers décimal
 dec2bin décimal vers binaire
 base2dec base B vers décimal
 dec2base décimal vers base B

MATLAB à la carte — module 1: « Initiation » 181 / 216

91
Matlab à la carte 04/09/2008

 Les chaines de caractères sscanf

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
»

MATLAB à la carte — module 1: « Initiation » 180 / 216

 Les chaines de caractères


Conversion des nombres
MATLAB propose des fonctions pour la conversion
des nombres:
 hex2dec hexadécimal vers décimal
 dec2hex décimal vers hexadécimal
 bin2dec binaire vers décimal
 dec2bin décimal vers binaire
 base2dec base B vers décimal
 dec2base décimal vers base B

MATLAB à la carte — module 1: « Initiation » 181 / 216

91
Matlab à la carte 04/09/2008

 Les chaines de caractères dec2hex


hex2dec

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 à la carte — module 1: « Initiation » 182 / 216

 Les chaines de caractères dec2bin


bin2dec

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
»

MATLAB à la carte — module 1: « Initiation » 183 / 216

92
Matlab à la carte 04/09/2008

 Les chaines de caractères dec2hex


hex2dec

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 à la carte — module 1: « Initiation » 182 / 216

 Les chaines de caractères dec2bin


bin2dec

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
»

MATLAB à la carte — module 1: « Initiation » 183 / 216

92
Matlab à la carte 04/09/2008

 Les chaines de caractères dec2base


base2dec

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
»

MATLAB à la carte — module 1: « Initiation » 184 / 216

 Les chaines de caractères


Evaluation d’une instruction
La fonction eval met en œuvre une facilité très
puissante et très utile:
>> eval('string');
exécute la chaîne string comme tout autre
expression.

MATLAB à la carte — module 1: « Initiation » 185 / 216

93
Matlab à la carte 04/09/2008

 Les chaines de caractères dec2base


base2dec

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
»

MATLAB à la carte — module 1: « Initiation » 184 / 216

 Les chaines de caractères


Evaluation d’une instruction
La fonction eval met en œuvre une facilité très
puissante et très utile:
>> eval('string');
exécute la chaîne string comme tout autre
expression.

MATLAB à la carte — module 1: « Initiation » 185 / 216

93
Matlab à la carte 04/09/2008

 Les chaines de caractères eval

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
»

MATLAB à la carte — module 1: « Initiation » 186 / 216

 Les chaines de caractères


Conversion des tableaux
La fonction mat2str convertit le tableau A en une
chaîne de caractères:
>> s=mat2str(A);
de sorte que eval(s)retournera le tableau originel A.

MATLAB à la carte — module 1: « Initiation » 187 / 216

94
Matlab à la carte 04/09/2008

 Les chaines de caractères eval

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
»

MATLAB à la carte — module 1: « Initiation » 186 / 216

 Les chaines de caractères


Conversion des tableaux
La fonction mat2str convertit le tableau A en une
chaîne de caractères:
>> s=mat2str(A);
de sorte que eval(s)retournera le tableau originel A.

MATLAB à la carte — module 1: « Initiation » 187 / 216

94
Matlab à la carte 04/09/2008

 Les chaines de caractères eval


mat2str

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
»

MATLAB à la carte — module 1: « Initiation » 188 / 216

 Les opérateurs

Les opérations dans MATLAB sont volontairement


naturelles au sens des scalaires mais aussi au sens des
matrices. On distingue:
 les opérateurs arithmétiques,
 les opérateurs relationnels,
 les opérateurs logiques.
L’expression « opérations tableaux » se réfère à des
opérations arithmétiques élément par élément
identifiées par un . précédant l’opérateur.
MATLAB à la carte — module 1: « Initiation » 189 / 216

95
Matlab à la carte 04/09/2008

 Les chaines de caractères eval


mat2str

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
»

MATLAB à la carte — module 1: « Initiation » 188 / 216

 Les opérateurs

Les opérations dans MATLAB sont volontairement


naturelles au sens des scalaires mais aussi au sens des
matrices. On distingue:
 les opérateurs arithmétiques,
 les opérateurs relationnels,
 les opérateurs logiques.
L’expression « opérations tableaux » se réfère à des
opérations arithmétiques élément par élément
identifiées par un . précédant l’opérateur.
MATLAB à la carte — module 1: « Initiation » 189 / 216

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

MATLAB à la carte — module 1: « Initiation » 190 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 191 / 216

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

MATLAB à la carte — module 1: « Initiation » 190 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 191 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 192 / 216

 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

MATLAB à la carte — module 1: « Initiation » 193 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 192 / 216

 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

MATLAB à la carte — module 1: « Initiation » 193 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 194 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 195 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 194 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 195 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 196 / 216

 Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
 mtimes , * multiplication
 mpower , ^ exposant
 mldivide , \ division à gauche
 mrdivide , / division à droite

MATLAB à la carte — module 1: « Initiation » 197 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 196 / 216

 Les opérateurs
Opérateurs arithmétiques
MATLAB a 12 opérateurs arithmétiques:
 mtimes , * multiplication
 mpower , ^ exposant
 mldivide , \ division à gauche
 mrdivide , / division à droite

MATLAB à la carte — module 1: « Initiation » 197 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 198 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 199 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 198 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 199 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 200 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 201 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 200 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 201 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 202 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 203 / 216

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
»

MATLAB à la carte — module 1: « Initiation » 202 / 216

 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
»

MATLAB à la carte — module 1: « Initiation » 203 / 216

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 à la carte — module 1: « Initiation » 204 / 216

 Les opérateurs dot


cross

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
»

MATLAB à la carte — module 1: « Initiation » 205 / 216

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 à la carte — module 1: « Initiation » 204 / 216

 Les opérateurs dot


cross

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
»

MATLAB à la carte — module 1: « Initiation » 205 / 216

103
Matlab à la carte 04/09/2008

 Les opérateurs kron

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
»

MATLAB à la carte — module 1: « Initiation » 206 / 216

 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

MATLAB à la carte — module 1: « Initiation » 207 / 216

104
Matlab à la carte 04/09/2008

 Les opérateurs kron

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
»

MATLAB à la carte — module 1: « Initiation » 206 / 216

 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

MATLAB à la carte — module 1: « Initiation » 207 / 216

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 à la carte — module 1: « Initiation » 208 / 216

 Les opérateurs == ~= >


< >= <=

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 à la carte — module 1: « Initiation » 208 / 216

 Les opérateurs == ~= >


< >= <=

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 == ~= >


< >= <=

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

MATLAB à la carte — module 1: « Initiation » 211 / 216

106
Matlab à la carte 04/09/2008

 Les opérateurs == ~= >


< >= <=

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

MATLAB à la carte — module 1: « Initiation » 211 / 216

106
Matlab à la carte 04/09/2008

 Les opérateurs ~ not

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 à la carte — module 1: « Initiation » 212 / 216

 Les opérateurs & and


| or xor

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
»

MATLAB à la carte — module 1: « Initiation » 213 / 216

107
Matlab à la carte 04/09/2008

 Les opérateurs ~ not

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 à la carte — module 1: « Initiation » 212 / 216

 Les opérateurs & and


| or xor

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
»

MATLAB à la carte — module 1: « Initiation » 213 / 216

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 à la carte — module 1: « Initiation » 214 / 216

 Les opérateurs all any


find

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 à la carte — module 1: « Initiation » 214 / 216

 Les opérateurs all any


find

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.

MATLAB à la carte — module 1: « Initiation » 216 / 216

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.

MATLAB à la carte — module 1: « Initiation » 216 / 216

109

Vous aimerez peut-être aussi