Bonjour,
J'ai écrit le code suivant afin de définir une fonction par morceaux :
Je ne comprends pas pourquoi certains appels à la fonction génèrent une erreur ("Undefined variable 'y' in function 'f'.").
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 function y=f(x) if (x>=-3)&(x<=0) then y=exp(x)-1; elseif (x>0)&(x<=3) then y=x.*log(x); end; endfunction
Appels à la fonction qui ne génèrent pas d'erreur :
Appels à la fonction qui génèrent une erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 f(0) f(-1) f(1:0.1:3) f(-2:0.1:-1) f([-1,-2]) f([1;2]) f(0.3:0.1:3) f(0.4:0.1:3)
Au vu de l'erreur, on dirait que dans certains cas aucun des deux tests n'est évalué à true d'où pas de variable de sortie définie. D'ailleurs, ajouter une ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 f([-1,2]) f([-1;2]) f(0.1:0.1:3) f(0.2:0.1:3)fait que l'on n'a plus l'erreur en sortie (mais à la place on obtient logiquement 0 au lieu d'une matrice des valeurs images).
Code : Sélectionner tout - Visualiser dans une fenêtre à part else y=0;
J'ai effectué mes tests sur deux systèmes différents :
--> sous Mac OS et Scilab 6.1.0
--> sous Linux (Debian) et Scllab 6.0.x
Si quelqu'un peut m'éclairer...
Merci,
IzB
Partager