Bonjour,
Je travaille actuellement sur un script où je crée beaucoup de structures, et j'aimerais les sauvegarder à la fin dans des fichiers Matlab portant leur nom ("NomStruc.mat").
Il faut savoir que toutes mes structures ont un nom finissant par "_struct". Je n'ai pas trouvé comment les sauvegarder avec un tri direct sur les noms. Si vous avez des suggestions je suis preneuse...
Du coup j'ai eu l'idée de créer un tableau de cellules contenant les noms de mes structures, du type :
ListeStruct = {'Var1_struct'; 'Var2_struct'; 'Var3_struct';};
Maintenant je veux utiliser cette liste pour les sauvegarder. Je fais :
1 2 3
| for ind = 1:numel(ListeStruct)
save(fullfile(pwd,'FICHIERS_SAUVEGARDE',[ListeStruct{ind} '.mat']), ListeStruct{ind});
end |
Et cela marche bien.
Cependant on m'a conseillé d'utiliser la fonction cellfun, pour éviter de faire un for, j'ai donc écris :
cellfun(@(x) save(fullfile(pwd,'FICHIERS_SAUVEGARDE',[x '.mat']), x), ListeStruct);
Mais cela soulève une erreur, car il semblerait que la fonction save qui est appelée n'ai pas accès aux variables du workspace, et ne trouve donc pas mes structures à sauvegarder.
J'ai donc plusieurs questions :
- Comment puis-je passer les variables de l'environnement à la fonction appelée par cellfun ?
- Y a-t-il une façon plus simple/claire pour sauvegarder mes structures ?
Merci de votre aide :-)
Partager