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 :

Déclaration d'une fonction


Sujet :

MATLAB

  1. #1
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut Déclaration d'une fonction
    Bonjour,
    J'ai un problème pour déclarer ou définir une fonction (nommée : LireFichierConfiguration) au sein de ma classe (nommée : Fichier) !
    En c++ on procède de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void Fichier::LireFichierConfiguration()
    {
    }
    Comment faire en Matlab ?

    Merci d'avance

  2. #2
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,
    premier réflexe à avoir: lire la
    http://matlab.developpez.com/faq/?pa...definir_classe

  3. #3
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    J'ai déjà lu la faq certainement mais j'ai pas trouvé la solution

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    640
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Points : 776
    Points
    776
    Par défaut
    Rho, ça n'est pas possible

    http://matlab.developpez.com/faq/?pa...iff_script_fcn

    Tu as la différence entre un script et une fonction avec des exemples...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    function [sortie1, sortie2, ...] = LireFichierConfiguration(entree1, entree2, ...)

    et tu enregistres ton code sous LireFichierConfiguration.m

  5. #5
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    En fait c'est pas une seule fonction dans un fichier (.m) à part !
    Ma fonction (LireFichierConfiguration) est une fonction comme méthode dans une classe bien déterminé (nommée : Fichier)
    En c++ dans ma classe je ferai comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void Fichier::LireFichierConfiguration()
    {
    }
    Sous matlab j'ai créé ma classe (nommée : Fichier.m) et le problème c'est dans la fonction (LireFichierConfiguration) dans ma classe

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

    Comme montré dans la FAQ, on met les méthodes de la classe entre les mots clés methods - end.
    Donc directement tiré d'ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    classdef Fichier
        properties
            % ...
        end
     
        methods
            function [sortie1, sortie2, ...] = LireFichierConfiguration(obj, entree1, entree2, ...)
                % ...
            end
        end
    end
    Il n'y a aucune difficulté

  7. #7
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    Le problème c'est que pour ma fonction LireFichierConfiguration(obj, il n'y a pas de [sortie1, sortie2, ...] ni de (entree1, entree2, ...) : il s'agit d'une fonction dans laquelle je vais lire un fichier texte ligne par ligne.
    Donc mes 3 questions sont:
    1) comment déclarer cette fonction au niveau des propriétés?
    2) comment déclarer cette fonction au niveau des constructeurs?
    3) comment déclarer cette fonction au niveau des méthodes?

  8. #8
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    Au sein de ma classe (Fichier.m)
    1) Dans propriétés j'ai déclaré la fonction comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    LireFichierConfiguration = {};
    2) Dans Constructeur j'ai déclaré la fonction comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function self = node(LireFichierConfiguration)
          self.LireFichierConfiguration = LireFichierConfiguration;     
        end
    3) Dans méthodes j'ai déclaré la fonction comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function obj = LireFichierConfiguration.obj(self)
            obj = self.obj;
            ...... % et je termine mon code pour lire mon fichier ligne par ligne
     
        end
    Je ne sais pas si c'est juste ?
    Moi j'ai l'impression que c'est faux

  9. #9
    Invité
    Invité(e)
    Par défaut
    Heu tu sais recopier du code ?

    Si tu n'as ni entrées ni sorties, alors tu les supprimes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    classdef Fichier
        properties
            % ...
        end
    
        methods
            function [sortie1, sortie2, ...] = LireFichierConfiguration(obj, entree1, entree2, ...)
                % ...
            end
        end
    end
    D'où viennent ces interrogations des propriétés et constructeur ? Une méthode est une méthode point !

    Je te rappelle de plus ce qui est dit dans la FAQ :
    Le premier paramètre de la méthode de la fonction sert comme référence à l'objet appelé. Dans d'autres langages, il est appelé this ou self, par exemple. Il est inutile de le préciser explicitement lors de l'appel à la fonction, MATLAB le fait implicitement grâce à la syntaxe objet.méthode(paramètre), que l'on peut comprendre comme méthode(objet, paramètre).
    Donc évite le mélange obj / self.

  10. #10
    Membre du Club
    Femme Profil pro
    Inscrit en
    Février 2011
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 221
    Points : 62
    Points
    62
    Par défaut
    Bien sûr j'ai déclaré ma méthode sans entrés ni sorties :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function LireFichierConfiguration
                % ...
            end
    Mais j'ai l'erreur suivante:
    (method 'LireFichierConfiguration' is not static, so it must have at least one input argument)

  11. #11
    Invité
    Invité(e)
    Par défaut
    Tu as oublié obj !
    Est-ce si difficile de recopier sans fautes ?

Discussions similaires

  1. [C#]Déclaration d'une fonction globale
    Par Raton dans le forum C#
    Réponses: 7
    Dernier message: 21/09/2013, 12h27
  2. Réponses: 4
    Dernier message: 24/04/2007, 16h07
  3. déclaration d'une fonction static
    Par salseropom dans le forum C
    Réponses: 4
    Dernier message: 09/03/2007, 16h59
  4. Réponses: 2
    Dernier message: 10/01/2007, 23h28
  5. Réponses: 4
    Dernier message: 26/07/2005, 13h38

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