Écriture de fichiers de données
On peut distinguer deux objectifs principaux pour lesquels on souhaite enregistrer des données sous forme d'un fichier :
soit pour les stocker en vue d'une utilisation ultérieure avec MATLAB ;
soit pour utiliser ces données avec un autre logiciel (un tableur, un grapheur, etc).
Créer un fichier MAT
Il est possible de sauvegarder toutes ou certaines variables existantes dans le workspace, sous forme d'un fichier mat
, qui conserve la structure des données MATLAB : pour cela, on utilisera la fonction save
.
Le format mat
est spécifique à MATLAB. Il est donc utile pour sauvegarder des données que l'on compte réutiliser au sein de MATLAB.
Syntaxe :
Si l'on veut sauvegarder toutes les variables définies dans le workspace, il suffit d'utiliser la syntaxe :
où nom_Fichier_mat
est une chaîne de caractères correspondant au nom du fichier mat
que l'on souhaite créer.
Syntaxe :
Si l'on veut sauvegarder certaines variables uniquement, il suffit de préciser leur nom, sous forme de chaînes de caractères :
où nom_Fichier_mat
est une chaîne de caractère correspondant au nom du fichier mat
que l'on souhaite créer, et nom_Variable_1
, ... , nom_Variable_n
sont les chaînes de caractères correspondant aux noms des variables spécifiques à enregistrer.
Exemple :
ou, si l'on veut sauvegarder que les variables x
et y
:
Remarque :
On remarquera que dans l'exemple précédent, le nom du fichier comprend aussi un chemin d'accès : les variables seront stockées dans un fichier nommé DATAS_xy.mat
, dans le répertoire Docs
(à supposer qu'il existe).
Exemple :
Supposons que dans l'espace mémoire existent des variables nommées LEGENDS, RAIES et DATAS (et peut-être d'autres).
On peut sauvegarder ces variables dans un fichier, nommé SpectresRAMAN.mat
, en écrivant :
Créer un fichier CSV
Définition : Fichier CSV
Un fichier CSV (Comma-separated values) est un format de fichier stockant des données tabulaires sous forme de valeurs séparées par des virgules. L'extension du fichier est généralement .csv
.
Ce format n'est pas spécifique à MATLAB, et il est surtout adapté aux données numériques.
Si l'on souhaite récupérer des données pour les traiter avec un logiciel externe, il est utile de savoir créer un fichier CSV
: pour cela, on utilise la fonction csvwrite
.
Syntaxe :
La fonction csvwrite
permet de sauvegarder un tableau de données sous forme d'un fichier CSV
, selon la syntaxe :
où nom_Fichier_csv
est une chaîne de caractères correspondant au nom du fichier csv
que l'on souhaite créer, et tableau_Donnees
est le tableau à sauvegarder.
Exemple :
Dans cet exemple, on enregistre le tableau de données M
dans un fichier nommé M_csv.dat
.
La fonction type
permet d'afficher le contenu de ce fichier.
Conseil :
Le fichier csv
peut porter n'importe quelle extension (voire aucune).
Souvent, on choisit comme extension csv
, dat
ou txt
. Ce choix peut être guidé par l'usage que l'on souhaite en faire : pour des raisons pratiques, certains logiciels imposent l'extension du fichier.
Exemple :
La fonction csvwrite
n'enregistre qu'un seul tableau. Si l'on veut enregistrer plusieurs colonnes, ou des tableaux ayant des dimensions cohérentes, on peut construire un tableau global reprenant les valeurs des ces colonnes et tableaux :
Remarque :
La fonction csvwrite
sauvegarde "à plat" les données contenues dans les variables MATLAB : elle est donc bien adaptée pour un ré-emploi des données en dehors de MATLAB, mais pas très adaptée pour un stockage intermédiaire en vue d'une ré-utilisation ultérieure avec MATLAB.
Contrairement au format mat
, ici, ce ne sont que les valeurs qui sont sauvegardées (et non les variables).
Attention :
La fonction csvwrite
tronque les données à cinq décimales !
Dans certains cas, cette limite de précision peut s'avérer rédhibitoire.
Créer un fichier texte, sans contraintes
Comme nous venons de le voir, le format csv
est un format de fichier simple et courant, lisible comme tout fichier texte, mais il ne permet pas de stocker n'importe quelles données (seulement des valeurs numériques), et les valeurs sont stockées avec cinq décimales au plus.
Si l'on veut s'affranchir de ces contraintes, tout en conservant le côté pratique des fichiers texte, il faut créer son propre fichier.
Nous avons vu précédemment (Entrées et Sorties de variables), que la fonction sprintf
permet de construire une chaîne de caractères en formatant l'affichage de variables. Il existe une fonction similaire, fprintf
, pour écrire dans un fichier texte.
Syntaxe :
La fonction fprintf
permet d'écrire une chaîne de caractères formatée dans un fichier donné, selon la syntaxe :
Exemple :
La fonction fprintf
sait écrire d'un coup l'ensemble de valeurs contenues dans une matrice (attention les données doivent être en ligne pour les formater en colonne...).
Pour visualiser le résultat, vous pouvez utiliser la fonction type
:
Complément :
Pour en savoir plus sur les possibilités de format, consultez l'aide de Matlab :
https://fr.mathworks.com/help/matlab/matlab_prog/formatting-strings.html