Sauvegarder
des variables
[29 avril 2004] Jim G. a écrit:
Bonjour
je suis un de vos ancien étudiants de brest. je suis
tombé sur votre site par hasard.
Etant actuellement dans une boite de géophysique a paris, je
programme en matlab.
j'ai
juste une question matlab a vous poser:
je souhaite enregistrer une matrice dans un fichier dont le nom est une
variable
nom='texte1.dat'
save nom matrice -...
le probleme c'est qu'il créé un fichier nom et pas
texte1.dat !!!!
esque vous ete deja tombé sur ce probleme?
merci
Pour sauvegarder une ou plusieurs variables dans un fichier il existe
la commande save.
Sa syntaxe est :
save <le_nom_du_fichier.son_extension> <la liste des variables séparées par des espaces>
Par défaut l'extension du fichier est .mat
Exemple :
>> A=eyes(5);
>> B=2*ones(2,1)
>> save toto A B
La commande save possède une seconde forme qui est :
save('<le_nom_du_fichier.son_extension>','<variable 1>','<variable 2>', ... ,'<variable n>')
Sous cette forme il est possible d'utiliser une variable pour
définir le nom du fichier :
var_nom_fichier = '<le_nom_du_fichier.son_extension>'
save(var_nom_fichier,'<variable 1>','<variable 2>', ... ,'<variable n>')
Exemple :
>> A=eyes(5);
>> B=2*ones(2,1)
>> nomfic = 'toto.mat'
>> save(nomfic,'A','B')
Par défaut, les variables sont sauvegardées dans un
fichier binaire dont la seule exploitation possible est la restauration
de ces variables en mémoire dans une future session de matlab (en
utilisant la commande : load <le_nom_du_fichier.son_extension>).
Ce fichier n'est donc pas lisible avec un éditeur.
Il est possible de faire une sauvegarde de variables au format ASCII
(ie: caractères et chiffres), ce qui permet par exemple de lire
les données du fichier avec un éditeur quelconque. Il
suffit d'ajouter une option à la commande save de la
manière suivante : save
<le_nom_du_fichier.son_extension> <la liste des variables
séparées par des virgules> -ascii
Attention, contrairement au cas précédent, il n'est
plus possible de restaurer ces variables en mémoire dans une
session future de matlab.
Exemple :
>> A=eyes(5);
>> B=2*ones(2,1)
>> save toto.data A B -ascii
Le fichier toto.data a alors la forme suivante
1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00
0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00
0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00 0.0000000e+00
0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00 0.0000000e+00
0.0000000e+00 0.0000000e+00 0.0000000e+00 0.0000000e+00 1.0000000e+00
2.0000000e+00
2.0000000e+00
On peut remarquer sur cet exemple que l'on ne maîtrise absolument
pas la façon dont son présentées les variables
sauvegardées. On pourrait vouloir écrire le nom de la
variable, séparer les variables par des lignes blanches, etc..
Ceci est possible en utilisant la commande fprintf, mais c'est
plus compliqué à mettre en oeuvre!
(c)
Stéphane Balac - Centre de Mathématiques - INSA de Lyon.