MatLab sauvegarder avec le nom du fichier actif?
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

MatLab sauvegarder avec le nom du fichier actif?



  1. #1
    Krafter

    MatLab sauvegarder avec le nom du fichier actif?


    ------

    Bonjour,

    Etant débutant sur MatLab, j'aurai besoin d'aide pour une opération qui je le pense doit être toute simple mais pas moyen de réussir. Je m'explique, j'ai un programme .m, lorsque je le lance il me demande sur quel .fig je veux l'appliquer, je choisi et les courbes de mon . fig subissent donc une transformation.
    Pour choisir mon .fig mon programme me demande :

    [filename,pathname]= uigetfile('C:\Users\********\. fig','Please select file to load');

    Ensuite pour sauvegarder mes courbes modifiées j'utilise :

    e=figure;
    plot(****,****,'r');
    saveas(e,'C:\Users\******\XYXY .fig','fig')

    Sachant que le nom "XYXY" c'est un nom que j'ai rentré manuellement dans mon programme. Comme je vais utiliser mon programme sur un (très très) grand nombre de .fig, si je dois modifier à chaque fois le nom du fichier de sauvegarde pour toutes les courbes à modifier à chaque fois.... je suis pas rendu. Donc ce que je voudrais c'est que le "saveas" récupère le nom du fichier que je choisi au début pour la sauvegarde.
    Exemple au départ je choisi "essai01" et que ma figure dans "e" soit enregistrée sous "essai01". En fait si possible, pour vraiment bien faire si un mix des deux serai possible? Que ça récupère le nom du fichier que je choisi au départ + quelque chose qui ne change pas? Du style :

    [filename,pathname]= uigetfile('C:\Users\********\. fig','Please select file to load');

    => dans la fenêtre qui s'ouvre je choisi mon "essai01.fig"

    saveas(e,'C:\Users\******\"nom du fichier choisi" + normé .fig','fig')


    afin d'avoir dans mon dossier un fichier .fig "essai01" (que j'ai choisi au départ), puis un fichier que le programme enregistre qui serai "essai01 normé".


    J'insiste sur le fait que j'ai énormément d'essai et que pour chacun je dois enregistré plusieurs nouveaux fichiers modifiés comme cela, donc une automatisation des noms devient vraiment indispensable.
    J'espère que mon explication est claire, merci pour votre aide.

    -----

  2. #2
    Evil.Saien

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Salut,

    Pour concatener des chaînes de caractère sous matlab, c'est comme ça :

    Code:
    fname = [str1 str2 str3];
    Donc dans ton exemple,

    Code:
    nom_de_sortie='ma_super_figure.fig';
    mon_chemin='C:\mon\super\chemin\';
    saveas(e, [mon_chemin nom_de_sortie ,'fig')
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  3. #3
    Krafter

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Bonjour,

    Mais ça ne répond pas à ma question. Comment puis-je récupérer le nom du fichier que je load dans mon code, pour le réutiliser dans des commandes comme saveas?

    Merci

  4. #4
    Evil.Saien

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  5. A voir en vidéo sur Futura
  6. #5
    Krafter

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Mmh alors je ne comprends pas bien comment me servir de dir?

    En fait moi au début de mon programme je load un fichier, dont je stock le nom dans filename. Donc j'ai déjà le nom de mon fichier ce n'est pas ça mon soucis (je crois que dir c'est pour trouver un nom de fichier?)
    Moi je peux dire nom = filename par ex ou directement utiliser filename.

    Mon soucis cest que dans saveas je ne peux pas écrire un truc du style :

    saveas(b,'C:\Users\********\' filename '.fig','fig')

    c'est en gros ce que je voudrais. Je peux stocker mon nom de fichier mais comment le mettre dans un saveas? Quelle est la bonne syntaxe pour faire cela?

    Merci

  7. #6
    Krafter

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Moi j'ai mon filename dans mon code et je peux enregistrer un fichier genre

    saveas(d,'C:\Users\********\mo nfichier.fig','fig') => donc mon fichier sauvé s'appelera "monfichier". Or moi je veux que ça soit intéractif.

    Comme :

    saveas(d,'C:\Users\********\ filename + normé .fig','fig') => si je lance le programme sur ma figure essai01.fig il m'enregistre un fichier qui s'appelle essai01 normé.fig. Voilà ce que je veux. Mais comment j'écris ça dans saveas j'ai essayer de pleins de façons pas moyen

    PS (je voulais edit celui d'au dessus, mauvaise manip' d'en avoir fait 2)

  8. #7
    Evil.Saien

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Pour concaténer des chaînes de caractères, cf mon message ci-dessus (#2).

    La fonction dir s'utilise ainsi:
    Code:
    listing = dir(name)
    Les wildcard sont possibles.

    Est-ce que tu as essayé de l'executer?
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  9. #8
    Krafter

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Alors je ne vois toujours pas comment la fonction dir peut m'aider même en ayant lu la doc à son sujet, mais j'ai résolu mon problème autrement.
    Je ne sais pas si c'est que j'ai mal expliquer mon problème ou que je suis trop nouille pour comprendre ce que tu m'indique, en tout cas merci de ton aide ^^"

    Mon problème je l'ai résolu en faisant cela (je ne sais pas si ça rejoins ta solution?)

    [filename,pathname]= uigetfile('C:\Mes essais\.fig','Please select file to load');

    J'ai simplifié le chemin, disons que je lance mon programme et choisi donc le fichier "essai01"
    Sachant que dans mon dossier "Mes essais" j'ai un sous-dossier "Mes signaux normés".

    J'ai fais :

    saveas(c,strcat(strcat(pathnam e,'\Mes signaux normés\'),strcat(strrep(filena me, '.fig',''),'_norme')),'fig')

    Ainsi, mon programme enregistre dans mon sous-dossier le fichier : "essai01_norme"! Je suis trop content d'y être arriver, c'est sûrement tout bête mais 2 jours que je bloque dessus ^^
    et j'ai aussi (en ayant changer les noms pour simplifier) :

    save(strcat(strcat(pathname,'\ Mes signaux normés\'),strcat(strrep(filena me, '.fig',''),'_norme.mat')),'ma variable de norme')

    Donc dans mes sous-dossier j'ai mes fichiers qui s'enregistrent avec le nom de l'essai, je sauve mes figures et mes matrices et tout est automatique maintenant
    Merci quand même des conseils, je ne sais pas si ça menait au même résultat?

  10. #9
    Krafter

    Re : MatLab sauvegarder avec le nom du fichier actif?

    (Je ne vois toujours pas de bouton edit)

    Petite correction c'est :

    saveas(c,strcat(strcat(pathnam e,'\Mes signaux normés\'),strcat(strrep(filena me, '.fig',''),'_norme.fig')),'fig ')


    Il semblerait que juste spécifier le format ne suffise pas, qu'il faille l'extension aussi.

    A +

  11. #10
    invite73192618

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Citation Envoyé par Krafter Voir le message
    Merci quand même des conseils, je ne sais pas si ça menait au même résultat?
    Oui, mais ta solution manque d'élégance. Compare:

    Code:
    strcat(strcat(pathname,'\Mes signaux normés\'),strcat(strrep(filename, '.fig',''),'_norme.fig'))
    avec la solution sauce Evil:

    Code:
    [pathname '\Mes signaux normés\' filename '_norme.fig']
    ... même résultat meilleure technique.

  12. #11
    Evil.Saien

    Re : MatLab sauvegarder avec le nom du fichier actif?

    Tout à fait d'accord avec Jiav, l'élégance est importante.

    Code:
    filename='monsuperfichier.fig';
    no_extension=filename(1:end-4);
    filename_norme = [no_extension '_norme.fig']
    
    saveas(c, [mon_chemin filename_norme], 'fig')
    Et ça devient plus facile à lire, donc à débugger
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

Discussions similaires

  1. Comment sauvegarder un fichier txt avec un 'nom de fichier' en variable input
    Par Lalao dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 23/10/2015, 18h10
  2. lire un fichier avec Matlab
    Par inviteb43c2c20 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 22/12/2013, 12h36
  3. fichier texte avec matlab
    Par wardakouka dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 02/05/2013, 10h31
  4. lire un fichier .don avec matlab
    Par invite71d2412a dans le forum Programmation et langages, Algorithmique
    Réponses: 1
    Dernier message: 12/12/2012, 23h14
  5. Lire un fichier .BIN avec Matlab converti d'un fichier .WAV
    Par invite45d1502e dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 03/05/2008, 16h13