passer une fonction en paramètre sous matlab
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

passer une fonction en paramètre sous matlab



  1. #1
    haciol

    passer une fonction en paramètre sous matlab


    ------

    Bonjour,
    j'aimerais faire une fonction sous matlab qui prenne en paramètre une fonction. Je m'explique: je voudrais faire:

    function[] = titi('fct')
    x=fct(3)

    L'idée est de mettre 'exp' dans le programme et que x=exp(3) et que ca puisse marcher pour 'cos','sin'...
    J'espère que c'est assez clair.

    -----
    le spectacle d'un arc-en-ciel vaut bien tout les trésors de la terre

  2. #2
    phryte

    Re : passer une fonction en paramètre sous matlab

    Bonjour.
    Une solution simple :
    Code:
    function res=titi(fonc,x)
    
    switch fonc
        case 'exp'
            res=exp(x)
        case 'cos'
            res=cos(x)
    end

  3. #3
    haciol

    Re : passer une fonction en paramètre sous matlab

    merci, c'est déjà très bien. Mais, est-ce possible de ne pas séparer les cas et faire quelque chose qui marche pour tout les cas.
    le spectacle d'un arc-en-ciel vaut bien tout les trésors de la terre

  4. #4
    Fanch5629

    Re : passer une fonction en paramètre sous matlab

    Bonjour.

    Une autre voie de recherche :

    1 - passer la fonction à exécuter sous forme de chaine de caractères,

    2 - la faire exécuter par la fonction "eval" qui prend pour argument une chaîne de caratères et tente de l'interpréter comme une commande MATLAB (voir la doc)

    @+

  5. A voir en vidéo sur Futura
  6. #5
    haciol

    Re : passer une fonction en paramètre sous matlab

    Merci, le code que je cherchais est:
    function[c] = titi(fon)
    c=feval(fon,3);
    et on donne à manger une chaine de caractères.
    le spectacle d'un arc-en-ciel vaut bien tout les trésors de la terre

  7. #6
    phryte

    Re : passer une fonction en paramètre sous matlab

    Bonjour.
    Tu as aussi :
    Code:
    function res=tifonc(fonc,x)
    fonction=inline([fonc '(x)']);
    res=fonction(x);
    Appel :
    Code:
    clear
    tifonc('exp',0)
    tifonc('log10',10)
    tifonc('sin',30*pi/180)
    Tu peux poser tes posts pour Matlab sur le forum des développeurs :
    http://www.developpez.net/forums/

Discussions similaires

  1. Antécédent d'une fonction sous matlab
    Par invite9f5d8dd0 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 28/04/2009, 14h11
  2. Continuité et dérivabilité de l´intégrale d´une fonction avec parametre
    Par christophe_de_Berlin dans le forum Mathématiques du supérieur
    Réponses: 5
    Dernier message: 01/03/2008, 13h42
  3. [HTML] Passer du texte en paramètre
    Par Lévesque dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 07/10/2006, 02h17
  4. Mathematica CODE - Passer une fonction en paramètre
    Par Lévesque dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 20/02/2006, 13h44
  5. Effacer une colonne dans une matrice sous Matlab
    Par invitecb054b2d dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 10/01/2005, 18h21