Sauvegarder des données dans un fichier avec Matlab
Je vais vous expliquer comment sauvegarder des données dans un fichier via Matlab, ainsi que leur rechargement en mémoire.
Pourquoi sauvegarder des données ? Lorsque vous quittez Matlab, la mémoire RAM contenant votre espace de travail est réinitialisée. En enregistrant vos données de travail sur le disque dur, vous pouvez les récupérer en mémoire lors de votre retour sur Matlab, vous épargnant ainsi de tout ressaisir.
Comment enregistrer des données dans un fichier
Voici un exemple concret.
Imaginons que vous disposiez de trois tableaux, nommés M1, M2 et M3. Vous les créez en mémoire avec les commandes suivantes :
>> M1=[1 2 3; 4 5 6];
>> M2=[7 8 ; 9 1];
>> M3 = [ 3 4; 5 6; 8 9];
Pour sauvegarder l'ensemble des données de votre espace de travail, utilisez la commande "save", suivie du nom du fichier désiré, comme cela :
>> save filename.mat
Après cela, effacez les données de l'espace de travail avec la commande "clear", ou quittez et rouvrez Matlab.
>> clear
Cela supprimera toutes les données de votre mémoire, réinitialisant ainsi l'espace de travail Matlab. En tentant d'utiliser la matrice M1, Matlab ne la trouvera pas et affichera une erreur.
>> M1
Fonction ou variable 'M1' non reconnue.
Pour recharger les données en mémoire, utilisez la commande "load" avec le nom du fichier :
>> load filename.mat
Cette commande rechargera les données du fichier dans votre espace de travail.
Si vous saisissez de nouveau "M1", Matlab le reconnaîtra en mémoire et affichera son contenu.
>> M1
M1 =
1 2 3
4 5 6
Note. Dans ces exemples, vous avez sauvegardé une matrice numérique. Sachez que Matlab permet de sauvegarder différents types de données : numériques, textuelles, caractères, images, etc.
Comment sauvegarder des objets spécifiques
Il est également possible de sauvegarder uniquement certains objets de votre espace de travail. Pour cela, précisez les objets à sauvegarder, comme suit :
>> save filename2.mat M1
Ceci ne sauvegardera que la matrice M1 dans le fichier "filename2.mat".
Pour sauvegarder à la fois M1 et M2, employez cette syntaxe :
>> save filename3.mat M1 M2
Vous pouvez également utiliser cette autre syntaxe :
>> save("filename3.mat", "M1", "M2")
Note. Pour inclure d'autres objets dans la sauvegarde, ajoutez-les à la suite. Par exemple, pour enregistrer les trois objets, entrez filename3.mat M1 M2 M3 ou save("filename3.mat", "M1", "M2", "M3").< br />
Il est aussi possible de sauvegarder tous les objets commençant par une lettre spécifique avec le caractère *.
Ainsi, pour sauvegarder les objets débutant par M, saisissez save filename3.mat M*.
>> save filename3.mat M*
Pour charger les données en mémoire, la commande load est de mise :
load nomefile2.mat
Comment charger un seul objet en mémoire
Lorsque vous avez de nombreux objets stockés dans un fichier, il peut arriver que vous n'ayez besoin que d'un seul d'entre eux.
Matlab offre la possibilité de charger sélectivement l'objet requis, sans avoir à charger l'ensemble.
Et pourquoi est-ce important ? Car les données occupent de l'espace mémoire sur l'ordinateur. Il est inutile de charger des données que vous n'utiliserez pas. En chargeant uniquement ce dont vous avez besoin, vous utilisez moins de RAM, permettant à l'ordinateur de fonctionner plus rapidement.
Pour charger un objet spécifique, indiquez son nom après le nom du fichier.
Par exemple, si vous avez enregistré les matrices M1, M2 et M3 dans le fichier "filename.mat", pour ne charger que la matrice M1, entrez load filename.mat M1 dans la ligne de commande.
>> load filename.mat M1
Matlab ouvrira le fichier et ne chargera que la matrice M1, ignorant les autres matrices présentes.
Pour charger M1 et M2, utilisez load filename.mat M1 M2.
>> load filename.mat M1 M2
Dans ce cas, Matlab chargera les matrices M1 et M2, mais pas la M3.
Vous pouvez aussi utiliser la syntaxe suivante, produisant le même résultat : "load('filename.mat','M1','M2')".
>> load("filename.mat","M1","M2")
Notez que pour charger trois objets ou plus, ajoutez simplement ces objets à la liste. Par exemple, pour charger trois matrices, entrez load filename.mat M1 M2 M3.
Il est aussi faisable de charger tous les objets débutant par une lettre donnée.
Pour charger des objets commençant par M, tapez load filename.mat M*
>> load filename.mat M*
Comment sauvegarder des données dans un fichier binaire
Matlab permet aussi la sauvegarde de données sous format binaire.
Pour enregistrer en binaire, utilisez la commande "save" avec l'option "-mat".
>> save -mat filename4.mat
Pour charger les données d'un fichier binaire en mémoire, employez la commande "load".
>> load nomefile4.mat
Quel est l'avantage du format binaire ?
Le format binaire est particulièrement utile pour traiter avec d'autres logiciels des données sauvegardées depuis Matlab.
Autres options de sauvegarde
La commande "save" de Matlab comprend plusieurs options pratiques, telles que :
- -append
pour ajouter des données à un fichier existant sans supprimer les données présentes - -nocompression
pour enregistrer des données sans compression - -ascii
pour enregistrer des données au format texte ASCII - -mat
pour enregistrer des données au format binaire - -struct
pour enregistrer des données issues d'une structure.
Pour combiner plusieurs options dans la commande "save", utilisez cette syntaxe : "save('-option1', ..., 'file', 'v1', ...)".
save ("-option1", ..., "file", "v1", ...)
Pour découvrir toutes les options de la commande "save", saisissez "help save" dans la ligne de commande.
>> help save