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 :

Eviter les parametres varargin


Sujet :

MATLAB

  1. #1
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut Eviter les parametres varargin
    Bonjour,

    Dans mes callback, j'appelle des nested functions par @ma_fonction.
    Ces fonctions ne demandent aucun paramètre, mais si je déclare simplement:

    Matlab me dit que j'ai mis trop de paramètres d'entrées.
    Du coup je mets:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function ma_fonction(varargin)
    et ça fonctionne sans problème, mais varargin est souligné en orange puisque jamais utilisé... Peut on évier ça?

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une façon d'éviter cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ... , 'callback', @(obj,evnt) ma_function)
    Puis

  3. #3
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci !

  4. #4
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    J'ai une question sous-jacente: comment je peux appeler, à partir d'un autre fichier .m, une nested function du premier fichier, mais sans executer la fonction principale?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    file1.m
    function file1
     
       function enfant
       end
     
    end
     
    file2.m
    function file2
     
       enfant;
     
    end
    Merci

  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
    Bonjour,

    Tu ne peux pas, en tous cas pas sans appeler avant la fonction principale.

    Toutefois, tu peux sauvegarder des handle vers tes nested function dans une variable qui te permettra ensuite de les appeler sans rappeler la fonction principale.

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    file1.m
    function [mes_fcn] = file1
     
       mes_fcn.enfant = @enfant;
     
       function enfant
       end
     
    end
     
    file2.m
    function file2
     
      file1_fcn = file1();
     
       file1_fcn.enfant();
     
    end
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  6. #6
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Merci duf pour l'astuce, du coup je vais voir si c'est pas mieux de faire un fichier séparé.

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

Discussions similaires

  1. [langage] 2 fichier dans 1 en evitant les doublons
    Par remixxl dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2004, 17h05
  2. [C#] Comment eviter les boucles infinies ?
    Par Thomas Lebrun dans le forum C#
    Réponses: 12
    Dernier message: 09/06/2004, 00h04
  3. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51
  4. [LG]J'ai honte : question de cours sur les paramètres
    Par letibdesneiges dans le forum Langage
    Réponses: 14
    Dernier message: 17/01/2004, 13h57
  5. [VB6] [ADO] Procedure stockée : spécifier les paramètres
    Par adepdoom dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 16/10/2002, 10h45

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