IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Fonction "save" avec variable dynamique


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Par défaut Fonction "save" avec variable dynamique
    Bonjour,
    Je viens vous trouver pour avoir un peu d'aide, je souhaiterais sauvegarder une matrice portant un nom choisi par l'utilisateur. Pour cela, j'utilise la fonction "save" mais le problème c'est que je n'ai pas l'impression qu'elle gère les noms de variable dynamique. Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var = inputdlg('Enter variable name','Predicted label',1,{''}); 
    assignin('base', [var{1}], B);
    B est ma matrice. var contient le nom de la variable choisi par l'utilisateur, et j'assigne ensuite le contenu de B dans la variable.
    Par contre, je souhaiterais ensuite faire quelque chose du genre :
    Mais bien évidemment ça ne fonctionne pas car var{1} n'est pas une variable.
    Il faudrait un moyen pour lui faire comprendre que si var contient le nom 'essai' (par exemple), il faut qu'il fasse
    save test essai

    Avez vous une idée?

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Bonjour,

    essaie ceci :
    Par contre quel est l'utilité que l'utilisateur choisisse les noms de variables? car d'un point de vus programmation, ce n'est vraiment pas pratique et pas optimisé à coder...
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Par défaut
    Merci pour la réponse, ça fonctionne très bien.

    En fait le but du programme est de généré une image (ma matrice B), et l'utilisateur doit avoir la possibilité de sauvegarder l'image en format jpg et également la matrice dans l'idée de pouvoir la recharger par la suite pour une utilisation future avec un autre programme. Alors peut être qu'il existe une meilleure solution? Je n'ai eu que ça comme idée et je pense que c'est mieux qu'il puisse choisir le nom de sauvegarde.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 9
    Par défaut
    Une autre question, la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    assignin('base', [var{1}], B);
    enregistre dans var{1} seulement à la fin de l'exécution de la fonction et non au moment où Matlab parcourt cette ligne? Ça serait tordu mais quand je lui demande juste après :

    Et il me dit qu'il n'y a pas de variable qui porte le nom de var{1}, en effet, en mode debug, la variable n'a pas été enregistrée après le assignin mais a la fin de l'exécution, elle est présente dans le workspace.

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Par défaut
    Citation Envoyé par Nyquist Voir le message
    je pense que c'est mieux qu'il puisse choisir le nom de sauvegarde.
    Le nom des fichiers ok, mais pourquoi le nom des variables? l'utilisateur va faire de la programmation avec ces variables?

    Citation Envoyé par Nyquist Voir le message
    Une autre question, la commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    assignin('base', [var{1}], B);
    enregistre dans var{1} seulement à la fin de l'exécution de la fonction et non au moment où Matlab parcourt cette ligne? Ça serait tordu mais quand je lui demande juste après :

    Et il me dit qu'il n'y a pas de variable qui porte le nom de var{1}, en effet, en mode debug, la variable n'a pas été enregistrée après le assignin mais a la fin de l'exécution, elle est présente dans le workspace.
    Peux-tu nous montrer le code qui permet de reproduire cette erreur ainsi que le message d'erreur complet?
    Pour une bonne utilisation des balises code c'est ici!
    Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources


    La nature est un livre écrit en langage mathématique. Galilée.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une autre solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var = inputdlg('Enter variable name','Predicted label',1,{''}); 
    S.(var{1}) = B;
    save FMB -struct S

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL2k5][SSIS] Quotes générées dans mes variables dynamiques
    Par Ivynox dans le forum Développement
    Réponses: 0
    Dernier message: 09/08/2010, 10h45
  2. Réponses: 2
    Dernier message: 10/12/2006, 09h57
  3. Problème avec variable dynamique
    Par moyjunior dans le forum Linux
    Réponses: 2
    Dernier message: 22/11/2006, 11h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo