Fonction à plusieurs expressions

Medamine4070 Messages postés 12 Statut Membre -  
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,comment peux-je définir une fonction à plusieurs expressions sur matlab suivant les valeurs de la variable comme suit par exemple :
pour t=0 à 2
f(t)=5*sin(5*t) si -3<f<3

f(t)=3 si f>3

f(t)=-3 si f<-3

ou au moin comment peux-je la tracer suivant cette condition.
A voir également:

2 réponses

Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
tu définis une fonction y=f(t) comme une fonction habituelle en matlab, et tu utilises un if.

mais je ne suis pas sûr de te suivre :
f(t)=5*sin(5*t) si -3<f<3
f(t)=3 si f>3
f(t)=-3 si f<-3

donc en gros ta fonction c'est la première expression, mais tu la forces à rester entre 3 et -3 ?

tu peux faire un truc du genre :

y= 5*sin(5*t)
if (y<-3) y=-3
if (y>3) y=3


(je ne suis pas sûr de ma syntaxe, mais tu comprends ce que je veux dire ?)

Ensuite tu fais un plot de ta fonction pour des valeurs de t que tu choisis, comme tu le ferais avec une autre fonction.
0
Medamine4070 Messages postés 12 Statut Membre
 
merci beaucoup mon ami mais j'ai trouvé une méthode trés intelligente il suffit de faire :

plot(t,min(max(f,-3),3)) ce qui marche parfaitement

ou faire une fct prédifinie comme suit

function res=mafonction(t)
res=5*sin(5*t)
res(res>3)=3;
res(res<-3)=-3;

et puis tu fait l'appel à cette fonction :

plot(t,mafonction);
0
Pacorabanix Messages postés 3248 Date d'inscription   Statut Membre Dernière intervention   663
 
ah oui c'est bien plus élégant, et connaissant un peu matlab surement bien plus optimisé. Merci d'être repassé donner la bonne solution.
0