Probleme de code avec Scilab

Discutez d'informatique ici !
jcp0_4
Messages: 2
Enregistré le: 17 Nov 2011, 00:18

Probleme de code avec Scilab

par jcp0_4 » 17 Nov 2011, 00:25

Bonjour,

J'aimerais créer une petite interface graphique avec Scilab. Pour apprendre son utilisation, j'ai réaliser le script ci-dessous qui sert à étudier la loi de décroissance radioactive.
Mais ça ne marche pas et l'erreur est assez bizarre: il n'arrive pas à extraire les variables pour faire tourner la fonction lorsque l'on appuie sur calcul. Ce qui est bizarre, c'est que dans le prompt scilab, lorsque je tape: N0=get(guientry(1),"string") il me donne la bonne valeur... mais pas lorsque je lance le script.
La fonction marche très bien indépendamment de la fonction "get".
Si quelqu'un a une idée...

voici le code:

Code: Tout sélectionner
labels1=["Nombre de noyaux à t=0", "pas de calcul", "temps total","lambda", "autre pas de calcul"];
values1=string(zeros(1,5));
guiw1=400; guih1=300; guih2=90;
//close(1);
figure(1,"position",[0,0,guiw1,guih1+20],"figure_name","Décroissance radioactive");
uicontrol("Min",1,"style","text","string","paramètres","position",[0,guih1,guiw1,20],"horizontalalignment","center","backgroundcolor",[1,1,1]);

for k=1:size(labels1,2)
uicontrol("Min",1,"style","text","string",labels1(k),"position",[10,guih1-k*20,200,20],"horizontalalignment","left");
guientry(k)=uicontrol("Min",1,"style","edit","string",values1(k),"position",[210,guih1-k*20,180,20],"horizontalalignment","left");
end

guivariables=["N0","dt","T","lambda","dt1"];


uicontrol("Min",1,"style","pushbutton","string","Calcul","position",[150,5,guiw1/4,25],"callback","radio","horizontalalignment","center","background",[1,0.1,0.1]);


function [tabt,tabN]=radio(N0,dt,T,lambda,dt1)

N0=get(guientry(1),"string");
dt=get(guientry(2),"string");
T=get(guientry(3),"string");
lambda=get(guientry(4),"string");
dt1=get(guientry(5),"string");

t0=0;
P=T/dt;
tabt=[t0];
tabN=[N0];

N=N0;
for p=0:P-1
    t=t0+p*dt;
    N=N+dt*(-lambda*N);
    tabN=[tabN N];
    tabt=[tabt t+dt];
end
clf();
plot2d(tabt,tabN,style=-1)

t0=0;
P=T/dt1;

tabt=[t0];
tabN=[N0];

N=N0;
for p=0:P-1
    t=t0+p*dt1;
    N=N+dt1*(-lambda*N);
    tabN=[tabN N];
    tabt=[tabt t+dt1];
end

plot2d(tabt,tabN,style=-3)

t=0:1:T;
Nth=guivariables(1)*exp(-lambda*t);

plot(t,Nth,style=-7)
endfunction



 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 8 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite