Matlab : Décortiquer le contenu d'une fonction anonyme
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Matlab : Décortiquer le contenu d'une fonction anonyme



  1. #1
    Antoane
    Responsable technique

    Matlab : Décortiquer le contenu d'une fonction anonyme


    ------

    Bonjour,

    J'ai une fonction anonyme du genre :
    Code:
    a = 3 ;
    y=@(x) a*x
    Est-il possible de récupérer la valeur de a en ne disposant que de y ?
    En pratique, ma fonction est plus complexe et multi-paramètre. Appeler y(1) ne suffit pas

    Merci d'avance.

    -----
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  2. #2
    polo974

    Re : Matlab : Décortiquer le contenu d'une fonction anonyme

    si c'est de la forme:

    y=@(x) a*x*random()

    il n'y a (quasi) aucune chance
    Jusqu'ici tout va bien...

  3. #3
    Antoane
    Responsable technique

    Re : Matlab : Décortiquer le contenu d'une fonction anonyme

    Bonjour,

    Pourquoi n'y a-t-il quasi-aucune chance de récupérer la valeur de a dans ce cas ?

    Matlab ne renvoie pas d'erreur lorsqu'on fait :
    Code:
    clear ;
    a=3 ;
    y=@(x) a*b*x ;
    mais que demander
    Code:
    y(1) ;
    lui fait répondre "Undefined function or variable 'b'."
    Ce qui suggère qu'il garde en mémoire la formule analytique et ne va chercher les valeurs numériques des paramètres que lors de l'évaluation de la fonction. Et donc que les paramètres a et b sont proprement codés quelque part séparément l'un de l'autre
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

  4. #4
    umfred

    Re : Matlab : Décortiquer le contenu d'une fonction anonyme

    les paramètres sont censés être définis avant la déclaration de la fonction anonyme et si tu changes leurs valeurs après, ça n'a aucun impact sur la fonction anonyme.
    Avec la fonction "functions(y)", tu peux voir les paramètres constituant la fonction anonyme et y avoir accès via workspace.
    Code:
    a=2;
    y=@(x) a*x;
    y(1)
    f=functions(y)
    z=f.workspace;
    z.a
    Donne
    Code:
    ans =  2
    f =
    
      scalar structure containing the fields:
    
        function = @(x) a * x
        type = anonymous
        file = 
        workspace =
    
          scalar structure containing the fields:
    
            a =  2
    
    
    ans =  2

  5. A voir en vidéo sur Futura
  6. #5
    Antoane
    Responsable technique

    Re : Matlab : Décortiquer le contenu d'une fonction anonyme

    Bonjour,

    Splendide merci !

    > les paramètres sont censés être définis avant la déclaration de la fonction anonyme et si tu changes leurs valeurs après, ça n'a aucun impact sur la fonction anonyme.
    Tout à fait, c'était pour l'exemple seulement.
    Deux pattes c'est une diode, trois pattes c'est un transistor, quatre pattes c'est une vache.

Discussions similaires

  1. Réponses: 5
    Dernier message: 24/12/2015, 16h22
  2. Renommer un pdf en fonction du contenu
    Par invitefe02ba98 dans le forum Logiciel - Software - Open Source
    Réponses: 5
    Dernier message: 20/05/2010, 17h51
  3. Comment insérer une fonction Matlab dans les paramètres d'entrée d'une autre fonction ??
    Par inviteac36b108 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 04/01/2010, 08h16
  4. Afficher le contenu d'un fichier en matlab
    Par invitede3386e5 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 14/11/2008, 13h59