IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MATLAB Discussion :

Une fonction en sortie [Débutant]


Sujet :

MATLAB

  1. #1
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut Une fonction en sortie
    Salut à tous,
    Je me demande si on peut créer une fonction qui en sortie donne une autre fonction?
    Merci.

  2. #2
    Membre éprouvé
    Avatar de soft001
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2008
    Messages
    409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 409
    Points : 1 146
    Points
    1 146
    Par défaut
    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

  3. #3
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    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

  4. #4
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    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.

  5. #5
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    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

  6. #6
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Citation Envoyé par duf42 Voir le message
    Pourrais-tu nous donner un exemple plus concret? Que représente F+G si F et G sont 2 fonctions?
    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.

  7. #7
    Invité
    Invité(e)
    Par défaut
    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);

  8. #8
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Salut,
    Merci pour la réponse, c'est ce que je cherche.
    J'ai réécrit cette expression sous forme de fonction :
    Code MATLAB : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function H = Plus(F, G)
    H = @(X) F(X) + G(X);
    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 ?

  9. #9
    Modérateur

    Homme Profil pro
    Ingénieur en calculs scientifiques
    Inscrit en
    Août 2007
    Messages
    4 639
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur en calculs scientifiques

    Informations forums :
    Inscription : Août 2007
    Messages : 4 639
    Points : 7 614
    Points
    7 614
    Par défaut
    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;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function H = Plus(F, G)
    H = @(X) F(X) + G(X);
    Et pour l'utiliser :
    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
    Tu peux aussi évaluer directement la fonction Plus :
    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.

  10. #10
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Donc, il suffit d'envoyer l'adresse des fonctions avec @.
    Et pour les fonctions créées avec 'inline' pourquoi on ne met pas de '@' ?

  11. #11
    Invité
    Invité(e)
    Par défaut
    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".

  12. #12
    Membre habitué Avatar de Onimaru
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Turquie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2010
    Messages : 283
    Points : 129
    Points
    129
    Par défaut
    Ok, merci pour les réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/08/2009, 11h39
  2. Plusieurs variables en sortie d'une fonction
    Par Matgic95 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 14/05/2008, 12h05
  3. cherche une fonction system avec capture de la sortie
    Par ChipsterJulien dans le forum C++
    Réponses: 4
    Dernier message: 28/02/2008, 16h47
  4. lire la sortie d'une fonction linux
    Par NexRezzo dans le forum C
    Réponses: 2
    Dernier message: 02/12/2007, 01h08
  5. Execution a la sortie d'une fonction
    Par cococococococo dans le forum Interfaces Graphiques
    Réponses: 2
    Dernier message: 10/07/2007, 14h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo