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 :

Récupérer le nom d'une variable [Débutant]


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut Récupérer le nom d'une variable
    Bonjour,

    J'ai une question assez bête je pense et qui rejoint un autre sujet que j'avais ouvert il y a quelques jours et qui combine plusieurs thématiques. Il se trouve que j'ai écrit la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function write_evenement(V)
     
    T0=V;
    T1='debut';
    T2='fin';
    T3='temps';
    xlswrite(V,{T0},'P','B1');
    xlswrite(V,{T1},'P','A3');
    xlswrite(V,{T2},'P','B3');
    xlswrite(V,{T3},'P','C3');
    xlswrite(V,V(:,1),'P','A4');
    xlswrite(V,V(:,2),'P','B4');
    xlswrite(V,V(:,3),'P','C4');
    Celle-ci doit me permettre d'écrire dans un fichier Excell des choses et prendra comme paramètre un vecteur colonne définit dans une autre fonction. Le problème c'est que j'ai besoin de récupérer le nom de V c'est-à-dire 'V' afin de générer un fichier Excell nommé V.xls avec le nom V en position B1 et les différentes données à écrire. L'ennui c'est que tel que j'ai écrit la fonction plus haut, j'utilise le vecteur V et non 'V' là où il le faudrait : en T0 et au début de xlswrite. Voyez-vous comment faire ?

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

    Parles-tu de la variable locale V à la fonction ou la variable extérieure passée à la fonction ?
    Dans le premier cas, vue qu'elle est fixe, tu peux simplement faire
    Dans le second cas, tu peux utiliser la fonction inputname.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Hmmm, j'ai peur de ne pas bien comprendre ce que tu me dis. Si tu veux, quand je veux lancer la fonction ailleurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    write_evenement(vecteur_a_traiter)
    J'ai besoin qu'un fichier Excell vecteur_a_traiter.xls soit crée qu'il porte dans la case B1 le nom vecteur_a_traiter et dans les autres le contenu vecteur_a_traiter(:,1) et les différentes chaines T1,T2,T3. Ainsi pour chaque vecteur passé en paramètre j'ai besoin qu'un autre xls soit crée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    write_evenement(V1)
    write_evenement(V2)
    write_evenement(V3)
    Ces dernières lignes devront me générer trois xls V1.xls, V2.xls et V3.xls avec les spécifications ci-dessus. Donc j'ai à la fois besoin d'utiliser le paramètre V de ma fonction pour lire ses colonnes (V(:,1)) mais aussi pour générer un fichier portant le même nom que ce vecteur. Je ne peux donc pas écrire xlswrite('V.xls',...) car alors tous les résultats seront écris dans le même V.xls à chaque fois. Tu vois le soucis ?

    En gros j'ai donc besoin d'une fonction NOM qui retourne une chaîne de caractère qui est le nom de la variable que j'utilise : ainsi NOM(V) devra me retourner 'V' ; je ne sais pas si cela existe ou s'il y a plus simple.

  4. #4
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,
    comme te l'as indiqué Winjerome juste avant, la fonction inputname répond exactement à ce besoin...
    http://www.mathworks.fr/fr/help/matlab/ref/inputname.html

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 401
    Points : 102
    Points
    102
    Par défaut
    Bonjour, merci. J'ai procédé autrement finalement mais le code suivant marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function write_evenement(V)
    T0=inputname(1);
    T1='debut';
    T2='fin';
    T3='temps';
    xlswrite(T0,{T0},'P','B1');
    xlswrite(T0,{T1},'P','A3');
    xlswrite(T0,{T2},'P','B3');
    xlswrite(T0,{T3},'P','C3');
    xlswrite(T0,V(:,1),'P','A4');
    xlswrite(T0,V(:,2),'P','B4');
    xlswrite(T0,V(:,3),'P','C4');

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

Discussions similaires

  1. VBA Récupérer le nom d'une variable
    Par Contrec dans le forum Général VBA
    Réponses: 16
    Dernier message: 17/03/2009, 14h53
  2. Récupérer le nom d'une variable
    Par marsupilami34 dans le forum Général VBA
    Réponses: 1
    Dernier message: 12/03/2009, 00h07
  3. Récupérer le nom d'une variable
    Par hector2 dans le forum Scilab
    Réponses: 8
    Dernier message: 15/10/2008, 17h15
  4. [Tableaux] Récupérer le nom d'une variable
    Par Tchupacabra dans le forum Langage
    Réponses: 4
    Dernier message: 20/05/2008, 18h55
  5. [Tableaux] Récupérer le nom d'une variable
    Par lem dans le forum Langage
    Réponses: 6
    Dernier message: 06/02/2007, 11h21

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