]> AND Private Git Repository - cours-mesi.git/blob - tel/TPmatlab/general/saisiefonction.m
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
init
[cours-mesi.git] / tel / TPmatlab / general / saisiefonction.m
1 function res=saisiefonction\r
2 \r
3 % saisiefonction : saisie au clavier d'une fonction.\r
4 %\r
5 % *********************************************************\r
6 %\r
7 % cette fonction saisit au clavier le nom d'une fonction f :\r
8 % - si cette fonction est une fonction built-in ou définie par un fichier .m\r
9 %   il faut rentrer au clavier le nom de cette fonction sans apostrophes.\r
10 % - sinon, il faut entrer sans appostrophe la chaine qui definit cette fonction\r
11 % en fonction de x et sans point (vectorize les rajoute) (exemple : 1/(1+x^2))\r
12 %\r
13 % dans le premier cas, res est la chaine égale au nom de la fonction\r
14 % dans le second cas, res est la fonction déclarée par inline\r
15 %\r
16 % dans le deux cas, on calcule l'image de X par res en utilisant y=feval(res,x)\r
17 % ou on fait un graphique avec fplot(res,...)\r
18 %\r
19 % ATTENTION : fonction avec argument à entrer au clavier.\r
20 \r
21 disp(' ');\r
22 disp(' ');\r
23 disp('Entrez le nom de la fonction sans apostrophes : ');\r
24 disp(' ');\r
25 disp(' ');\r
26 disp('- Soit directement le nom de cette fonction, si elle built-in');\r
27 disp('    exemple : cos');\r
28 disp('- Soit directement le nom du fichier *.m ou elle est stockée');\r
29 disp('    exemple : dudu');\r
30 disp('- Soit la chaîne de caratère en fonction de x sinon (sans apostrophe et sans point).');\r
31 disp('    exemple : 1/(1+x^2)');\r
32 ch=input('fonction : ','s');\r
33 c=exist(ch);\r
34 \r
35 if (c==2) | (c==5) \r
36    res=ch;\r
37 else\r
38    res=eval(['vectorize(inline(','''',ch,'''','))']);\r
39 end