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 :

Lancer une fonction au nombre d'entrées et de sorties variable


Sujet :

MATLAB

  1. #1
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Par défaut Lancer une fonction au nombre d'entrées et de sorties variable
    Bonjour !

    j'ai créé une fonction lanceurFonction qui a pour but de lancer une autre fonction, définie par l'utilisateur (l'intérêt est de contraindre à réaliser certains traitements avant et après cette fonction).

    Le code de cette fonction ressemble à ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function outputs = lanceurFonction(nomFonctionALancer, cellInputs, nbOutputs)
    [output1, output2, output3...] = nomFonctionALancer(cellInput1, cellInput2, cellInput3...);
    end
    Mon problème est que je ne sais pas vraiment comment passer mes entrées et sorties dans la fonction, étant donné qu'ils sont de nombre variable.

    Vous avez une idée pour m'aider ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    help varargin
    help varargout

  3. #3
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    help varargin
    help varargout
    Avec ces indications, j'ai commencé quelquechose, mais j'ai du mal à récupérer les outputs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function varargout = lanceurFonction(nomFonctionALancer, nbOutputs, varargin)
     
    varargout{1:nbOutputs} = feval(nomFonctionALancer,varargin{:});
     
    end
    L'idée est quelquechose dans ce genre. Mais je ne parviens à récupérer le nombre d'outputs que je veux (défini par la variable nbOutputs).

  4. #4
    Membre expérimenté
    Inscrit en
    Novembre 2006
    Messages
    236
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 236
    Par défaut
    Je pense être arriver à quelquechose de bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function varargout = lanceurFonction(nomFonctionALancer, varargin)
     
    [varargout{1:nargout}] = feval(nomFonctionALancer,varargin{:});
     
    end
    ça a l'air de fonctionner... je dois maintenant intégrer cette solution à mon projet.

    Merci Caro-Line !

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

Discussions similaires

  1. Comment lancer une fonction à une date donnée
    Par ideal dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 05/02/2006, 12h52
  2. Réponses: 9
    Dernier message: 14/12/2005, 21h05
  3. [Onload] Lancer une fonction au chargement de la page ??
    Par Kylen dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/06/2005, 18h36
  4. [PHP-JS] comment lancer une fonction javascript a partir de php
    Par amika dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/06/2005, 19h23
  5. Comment lancer une fonction
    Par Elois dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 21/04/2004, 19h10

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