-
27/02/2008 - 10h49 NickyLarson -
27/02/2008 - 12h38 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...
Tant qu'il y à de la vis, il y a du tourne-vis -
27/02/2008 - 13h52 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
-
31/03/2008 - 12h44 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 !
| | |