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 :

chaine de caractère et nom de variables


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Par défaut chaine de caractère et nom de variables
    bonsoir

    est ce que vous savez comment faire, sous matlab, pour transformer une chaine de caractère en un nom de variable à laquelle on donnera une valeur ?

    exemple: j'ai une variable a ='Vector'. a est une chaine de caractère. Est ce qu'il y a moyen de créer une variable Vector =3 ? Je sais pas si je suis clair, mais j'aimerai transformer les chaines de caractère en nom de variables..


    voila, merci beaucoup

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    2 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 040
    Par défaut
    Bonjour.
    Help str2num

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Par défaut
    bonjour,
    désolé mais je crois qu'on s'est pas très bien compris.

    j'ai une variable x égale à 'vect', qui est une chaine de caractère.

    j'aimerai pouvoir créer une variable nommée vect (le contenu de x) et lui donner la valeur 3 par exemple. donc je cherche une fonction f qui fait ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    >>x='vect'
    >>f(x)=3;
    maintenant, si je fais vect dans la commande window de matlab, je dois obtenir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>vect
     
    vect =
     
               3
    >>
    voilà, est ce que c'est possible ?

    merci beaucoup

  4. #4
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Quel est l'intérêt de faire ceci ?
    Une des FAQ qui ne correspond certes pas à ton besoin explique pourquoi la solution pour faire exactement ce que tu veux est mauvaise (utiliser EVAL)

    Une solution, suivant ton besoin, pourrait être d'utiliser une structure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    s.nom = 'vect';
    s.valeur = 3;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 209
    Par défaut
    bonjour,

    merci beaucoup pour la réponse.

    En fait, l'interet de faire cela, c'est pour pouvoir lire lire un fichier excel. En effet, il se trouve que xlsread, import wizard ou tout autre moyen interfaçant excel et simulink ne crée que des vecteurs à partir des colonnes, alors que j'ai besoin de matrices.

    je m'explique, vous savez très bien que les blocs from workspace de simulink ne peuvent lire que des matrices de deux colones (temps, vect). Or sous simulink, si je définis une colone temps, et une autre colonne vecteur, la fonction xlsread va créer un vecteur temps et un autre vecteur vect, ce qui ne sera pas lu par simulink. C'est pour cette raison que j'aimerai pouvoir constuire une matrice nommée vect et qui contient la valeur [temps, vect].

    Est ce qu'il ne vous est jamais arrivé ce genre de problèmes ?

    merci

  6. #6
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Je n'arrive pas bien à voir le rapport avec le fait que le nom soit stocké dans une chaine de caractères.

    Ton problème semble plutôt être la concaténation des données récupérées.

    Peux-tu nous montrer un exemple des valeurs récupérées, et un exemple de ce que tu veux injecter dans Simulink ?

Discussions similaires

  1. Réponses: 5
    Dernier message: 21/09/2011, 11h43
  2. Réponses: 1
    Dernier message: 03/03/2010, 03h41
  3. Convertir une chaine de caractère en nom de controle
    Par craesys dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 19/08/2008, 18h57
  4. Réponses: 1
    Dernier message: 13/06/2007, 13h14
  5. Réponses: 7
    Dernier message: 20/04/2007, 16h42

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