Sorties de fichiers graphiques

Comme nous l'avons vu, MATLAB permet de tracer rapidement et efficacement des courbes de données. Il est courant de vouloir sauvegarder ces figures afin de les utiliser dans le cadre de documents bureautiques, pour des rapports ou des publications.

Rappel

Il existe deux grandes familles de formats d'images :

  • les images vectorielles, où les points sont le résultat de calculs (formats eps ou pdf par exemple) ;

  • les images matricielles, appelées vulgairement bitmap, ou carte de points, où tous les points sont décrits individuellement (format png ou jpeg par exemple).

Il en résulte que les images vectorielles peuvent être agrandies sans perte de qualité, alors que les images matricielles ont une définition fixe, dépendant du nombre de points par unité de longueur, et se dégradent si elles sont trop agrandies (elles se pixelisent !)

La fonction saveas permet de sauvegarder une figure, en choisissant judicieusement le format de sortie.

Syntaxe

La syntaxe générale est la suivante :

saveas(pointeur_vers_figure, nom_fichier_image) ;

pointeur_vers_figure est un pointeur vers une fenêtre graphique (handle) qui permet de spécifier quelle est la fenêtre graphique que l'on veut sauvegarder, et nom_fichier_image est une chaîne de caractères correspondant au fichier que l'on veut créer. L'extension de ce fichier permet à MATLAB d'identifier dans quel format il doit faire cette sauvegarde.

Si vous avez généré différentes fenêtres graphiques, avec la fonction figure, sachez que la sortie par défaut de cette fonction est un handle pointant vers la fenêtre graphique créée :

h=figure(1);

Vous pouvez utiliser ce pointeur, ou le pointeur par défaut gcf qui pointe vers la fenêtre graphique courante.

Conseil

  • pour vos documents bureautiques odt ou doc, vous choisirez le format png ;

  • pour illustrer vos pages web ou sur campus, le format jpeg sera le plus efficace ;

  • pour vos documents \(LaTeX\), vous privilégierez les formats vectoriels eps (ou pdf).

Exemple

Pour une raison mystérieuse, vous voulez tracer et conserver la courbe correspondant à la fonction \(y = \exp \left(x^{0.25} \right) *\sin \left(x\right)*\ln \left(x\right)\)  :

h=figure(2);
ezplot(@(x) exp(x.^0.25).*sin(x).*log(x)) ;
saveas(h,'Courbe.png') ;
saveas(h,'Courbe.jpeg') ;
saveas(h,'Courbe.pdf') ;
saveas(h,'Courbe.eps') ;
% Par défaut, eps est un format noir & blanc
% Si l'on veut de la couleur, il faut le préciser
saveas(h,'CourbeCouleurs.eps','epsc') ;
Exemple de fichier graphique obtenu avec saveas
Exemple de fichier graphique obtenu avec saveas

Complément

Si vous souhaitez sauvegarder une figure, non pas pour l'utiliser dans un rapport ou une présentation, mais plutôt pour la réutiliser dans MATLAB, et pouvoir facilement la modifier si besoin, vous pouvez l'enregistrer au format fig :

ezplot(@(x) exp(x.^0.25).*sin(x).*log(x)) ;
saveas(gcf,'Courbe.fig') ;