Salut à tous,
Je me demande si on peut créer une fonction qui en sortie donne une autre fonction?
Merci.
Salut à tous,
Je me demande si on peut créer une fonction qui en sortie donne une autre fonction?
Merci.
Votre question n'est pas claire
Vous voulez créer une fonction qui en sortie crée un m file contenant un texte (sous forme d'une fonction) ?
Si tu trouves ma réponse utile, n'oublies pas de voter pour ce me message
Bonjour,
Les handle de fonctions pourraient t'être utile, ils permettent de stocker une fonction dans une variable.
Duf
Simulink & Embedded Coder
Au boulot : Windows 7 , MATLAB r2016b
A la maison : ArchLinux mais pas MATLAB
Salut,
Je veux par exemple une fonction qui en entrée reçoit deux fonctions F et G, disons de R->R et en sortie F + G.
Pourrais-tu nous donner un exemple plus concret? Que représente F+G si F et G sont 2 fonctions?
Simulink & Embedded Coder
Au boulot : Windows 7 , MATLAB r2016b
A la maison : ArchLinux mais pas MATLAB
Salut, en effet F et G sont des fonctions dans le sens mathématique, qu'ils soient définies par des fichier .m ou par inline.
Ce que je veux c'est entrer deux fonction par exemple cos et sin et recevoir une autre fonction cos + sin (l'addition des fonctions comme une loi de composition interne de l'ensemble des fonctions). par exemple dans les languages CAML, Pascal c'est possible de le faire.
Bonjour,
Quelque chose comme:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 f1 = @sin; f2 = @cos; f_1plus2 = @(x) f1(x) + f2(x);
Salut,
Merci pour la réponse, c'est ce que je cherche.
J'ai réécrit cette expression sous forme de fonction :
Cependant j'ai une question : est ce qu'on peut utiliser une fonction F prédéfinie ou inline et G depuis un fichier .m ?
Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function H = Plus(F, G) H = @(X) F(X) + G(X);
Bonjour,
oui, c'est le même principe :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function res = fonction1(a) res = a.^2;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function res = fonction2(a) res = a+2;Et pour l'utiliser :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function H = Plus(F, G) H = @(X) F(X) + G(X);
Tu peux aussi évaluer directement la fonction Plus :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 >> P = Plus(@fonction1,@fonction2) P = @(X)F(X)+G(X) >> P(3) ans = 14
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 function H = Plus(F, G, X) H = F(X) + G(X);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 >> Plus(@fonction1,@fonction2,3) ans = 14
Pour une bonne utilisation des balises code c'est ici!
Petit guide du voyageur MATLABien : Le forum La faq Les tutoriels Les sources
La nature est un livre écrit en langage mathématique. Galilée.
Donc, il suffit d'envoyer l'adresse des fonctions avec @.
Et pour les fonctions créées avec 'inline' pourquoi on ne met pas de '@' ?
Parce que les fonctions "inline" (ou anonymes) définissent l'identifiant (ou handle) des fonctions que tu crées, ce que l'on récupère justement avec le symbole @ sur les fonctions "non-inline".
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager