Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

Probleme de variable avec matlab



  1. #1
    NickyLarson

    Exclamation Probleme de variable avec matlab


    ------

    Bonjour à tous.

    C'est surment une erreur bête mais je vois pas...
    Je suis en train de creer une fonction dans laquelle j'utilise de nombreux GUI et qui commence par une interface avec des boutons et tout.

    A partir d'un autre fichier j'appelle ma fonction (qui s'appelle test) de la manière suivante A=test ;

    Ma fonction est definie de la maniere suivante : function B = test

    B est la variable que je veux sortir de ma fonction pour la mettre dans A

    Mais ça ne peut pas marcher car quand je lance ma fonction, elle crée l'interface mais ne crée pas encore la variable B (il faut appuyer sur un bouton pour la creer). Du coup, matlab me dit inlassablement que ma variable B n'existe pas.

    Donc du coup j'ai deux questions :

    1/ Il y a t'il un moyen de retourner la variable que j'ai crée (apres moult clic dans les interfaces) ? Je sais comment faire quand celle ci est créée immédiatement, mais ici il faut attendre que l'utilisateur fasse plusieurs taches avant de la creer et c'est la que ça pose probleme car matlab n'a l'air de regarder si la variable existe que seulement au tout début.

    2/ J'ai un autre problème que je trouve assez embetant, quand je travaille à l'interieur d'une fonction , il n'y a aucune variable interne qui s'affiche dans le Workspace... . Du coup on fait un peu tout à l'aveuglette. Il y a t'il un moyen de remedier à ça ?

    Je vous remercie d'avance pour vos reponses et vous souhaite une bonne journée

    -----

  2. Publicité
  3. #2
    lou_ibmix_xi

    Re : Probleme de variable avec matlab

    Salut,

    Pour la question 2:
    effectivement les variables déclarées à l'intérieur d'une fonction sont locales à la fonction (et franchement il vaut mieux...), donc si tu veux les visualiser il te suffit d'enlever le point virgule à la fin de la ligne. Sinon tu as aussi un debuger inclue avec MATLAB mais je ne le connaît pas...

  4. #3
    NickyLarson

    Re : Probleme de variable avec matlab

    Merci pour ta reponse, en effet c'est ce que je faisais (enlever le ; ) mais en fait pour ce que je veux faire, il me faut carrement pouvoir avoir la variable en dur dans le workspace et donc la faire sortir de la fonction puisqu'on dirait que c'est le seul moyen.

    Voici le message d'erreur que j'ai pour la ligne A=test;

    ??? Output argument "B" (and maybe others) not assigned during call to
    Pour mieux definir ce que je veux faire exactement et qui coince: je voudrais envoyer ma variable via une toolbox vers un autre programme. Il me faut donc avoir acces à cette variable...malheuresment, comme je suis à l'interieur de fonctions, les variables crées sont immédiatement effacés sorti de la fonction...et même à l'interieur de la fonction, j'arrive pas à y acceder puisqu'ils n'apparaissent pas dans le workspace (à moins que j'y arrive avec assignin).

    Voila j'espere que c'est plus clair

  5. #4
    ELw

    Re : Probleme de variable avec matlab

    % une soluce pas terrible, because usage de 'global' ; mais je n'ai pas trouvé mieux.
    % Bref on joue avec le "terriblement dangereux" effet de bord !..

    function creeMaBoite
    global B
    hc=zeros(10,1);
    for ii=1:10
    hc(ii)=uicontrol('style','push ','position',[10,(ii+2)*20+20,80,12], ...
    'max',ii,'string',['bouton ',int2str(ii)], ...
    'callback','ii=get(gco,''max'' ); global B, B=10*ii+rand(10);');
    end
    B = rand(10)-1;
    set(gcf,'UserData',{get(gcf,'U serData');{'hPushList',hc}})
    return

    % et dans le workspace :
    global B, disp(B)
    creeMaBoite, disp(B)
    disp('cliquez un bouton, puis tapez "disp(B)" pour constater l''effet...')

    %%%
    Sinon, tel que je comprends le pbm posé, ça ressemble pour moi à une erreur de conception : la fonction qui crée l'UI est une fonction d'initialisation, pas d'exécution. Elle crée les boutons, et quand elle a fini, elle peut éventuellement sortir un résultat dans une variable, mais son exécution est antérieure à celles des fonctions "callback", forcément. Ces callbacks qui vont s'exécuter sous action, sont eux, des fonctions sans argument de sortie, ce qui est logique car il n'y aurait "personne" pour recueillir le résultat !

  6. A voir en vidéo sur Futura

Discussions similaires

  1. probleme d'indexage de boucle for avec matlab
    Par RBM dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 23/10/2007, 03h32
  2. probleme avec matlab
    Par RBM dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 18/10/2007, 13h52
  3. MATLAB : Problème avec la fonction tf
    Par nams2590 dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 16/10/2007, 10h55
  4. probleme avec MATLAB
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 23/05/2007, 21h34
  5. Problème avec MatLab
    Par jeremy13 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 01/12/2006, 23h12
Découvrez nos comparatifs produits sur l'informatique et les technologies.