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 :

Aide lancer "function" [Débutant]


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Par défaut Aide lancer "function"
    Bonjour, un modérateur (Caro-Line pour ne pas le citer ) m'a convaincu de l'intérêt d'utiliser les fonctions, mais ce que j'arrivais à faire sans, je n'y arrive plus, par exemple comment appelé une fonction dans une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    function Verif_F_chaine(varargin)
        global A_file_chaine
        if (strcmp(A_file_chaine,'a')==0)
            Test1=1
            @Charger_fichiers;
        end
    Je ne rentre jamais dans la fonction "Charger_fichiers", et pourtant "Test1 s'affiche dans la commande windows, donc je suis entré dans le "if".
    Je rappel que j'ai commencé les fonctions il y a moins d'une heure, donc ce qui peut vous paraitre évident ne l'est pas pour moi.

    Merci

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Par défaut
    Salut, enlève juste le @ et ca devrait passer.

    Tu appelles juste les fonctions par leur nom. Avec entre parenthèse les éventuelles arguments qu'elle prend. Et entre crochet les éventuels sorties

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    n=50;
    for i=1:n
        if i==25
            disp('coucou')
            bonjour
        end
    end
    avec la function bonjour dans un fichier bonjour.m qui vaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function bonjour
     
    disp('bonjour serait mieux ;-)');
     
    end

  3. #3
    Membre confirmé Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Par défaut
    Le but est de na pas créer plusieurs ".m", puisque il m'a dit que c'était possible

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 640
    Par défaut
    Ha ok, fallait préciser

    Dans ce cas, tu crées un fichier .m et tu mets toutes tes fonctions dedans. Ici, tu auras qu'un fichier pouet.m

    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
    function pouet
    n=50;
    for i=1:n
        if i==25
            disp('coucou')
            bonjour
        end
    end
    end
     
     
    function bonjour
    disp('bonjour serait mieux ;-)');
     
    end

  5. #5
    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
    Nota : il n'est pas besoin (et tu vas peut-être même avoir une erreur) de mettre un END en regard de FUNCTION sauf dans le cas de nested function.

    Si je reprends l'exemple de Merel :
    Sous-fonction "standard" (sans les END en trop) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function pouet
    n=50;
    for i=1:n
        if i==25
            disp('coucou')
            bonjour
        end
    end
     
     
     
    function bonjour
    disp('bonjour serait mieux ;-)');
    Sous-fonction imbriquée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function pouet
    n=50;
    for i=1:n
        if i==25
            disp('coucou')
            bonjour
        end
    end
       function bonjour
       disp('bonjour serait mieux ;-)');
     
       end%end de bonjour
    end%end de la fonction principale
    Penser à toujours bien indenter son code (surtout avec les nested mais même tout le temps) : un petit CTRL+A puis cTRL+I sous l'éditeur et le tour est joué



    [HS] Caro-Line est plutôt une modératrice

  6. #6
    Membre confirmé Avatar de Youni92
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 178
    Par défaut
    Merci tout fonctionne comme quand je "programmais" sans fonctions, mais je dois reconnaitre que c'est plus propre


    Désolé Miss Caro-Line

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

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