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 :

Problème d'affectation de matrice avec matlab


Sujet :

MATLAB

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Problème d'affectation de matrice avec matlab
    J'ai un petit problème avec matlab...

    Voici une partie de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     SRD{1,1}='AN8068571086'
     
    eval([char(SRD(1,1)) '_cot' '= zeros(4000,5)'])
    Et je souhaite maintenant affecter à la matrice AN8068571086_cot certaines de ces lignes.

    Avec quelque chose comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     eval([char(SRD(1,1)) '_cot' (200, : ) '= [1 2 3 4 5]'])
    ce qui ne fonctionne pas...

    Merci pour votre aide.

  2. #2
    Expert éminent sénior
    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
    Points : 14 828
    Points
    14 828
    Par défaut
    Cela vient d'une mauvaise utilisation de eval, fonction qu'il vaut mieux éviter d'utiliser pour plein de raisons détaillées entre autres ici :
    Comment créer des variables nommées A1, A2, A3, ...,AN ?

    Donc la 1ère question que je te poserais est : pourquoi veux-tu créer le nom de ta variable ainsi ?

    Ensuite : le char est inutile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SRD{1,1}='AN8068571086';
    eval([SRD{1,1} '_cot = zeros(4000,5);']);
    Note : j'ai rajouté aussi des ; pour éviter des affichages inutiles, et enlever les ' ' qui ne servaient à rien entre cot et = zeros.

    Et pour l'erreur, il faut bien comprendre ce qui va être "évalué" et donc mettre toute la "phrase" entre quotes donc aussi le (200,:) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    eval([SRD{1,1} '_cot(200, : )= [1 2 3 4 5];']);
    AN8068571086_cot(200,:)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour ton aide.

    Cela fonctionne parfaitement.

    En fait, je dois récupérer dans le tableau SRD le nom de mes variables (il y en a plus de 300). Voila pourquoi j'ai créé la variable de cette manière (sans mettre de boucle).

    Je vais voire ce que je peux faire sans utiliser eval.

    Merci encore et A bientôt

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

Discussions similaires

  1. problème avec matrice : erreur matlab
    Par achtlos dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/07/2011, 15h25
  2. Problème avec matlab
    Par nofear972000 dans le forum MATLAB
    Réponses: 1
    Dernier message: 21/11/2008, 08h47
  3. Matrice centrée avec MATLAB
    Par acacia dans le forum MATLAB
    Réponses: 1
    Dernier message: 20/01/2008, 22h27
  4. problème avec matlab et zpk data
    Par pouet974 dans le forum MATLAB
    Réponses: 1
    Dernier message: 02/06/2007, 02h03

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