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 :

Envoi d'une variable dans une fonction: fonctionnement ?


Sujet :

MATLAB

  1. #1
    Membre habitué
    Homme Profil pro
    Ingénieur en science de l'environnement
    Inscrit en
    Août 2013
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur en science de l'environnement

    Informations forums :
    Inscription : Août 2013
    Messages : 97
    Points : 149
    Points
    149
    Par défaut Envoi d'une variable dans une fonction: fonctionnement ?
    Hello,

    J'ai une question plutôt théorique sur le fonctionnement de matlab.

    Disons que j'ai ce script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    A = [Une grande matrice]
     
    for i = 1:un grand nombre
    B = mafonction(A);
    end
    et la fonction mafonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function B = mafonction(A)
    B = operation sur A
    Lorsque mon script envoie A comme input dans "mafonction" est ce qu'il copie la matrice A ? ou est ce qu'il utilise un système de pointeur ?

    En gros j'aimerais savoir si le fait d'envoyer une variable d'une certaine taille dans "mafonction" va ralentir ou non l'execution de ce script.

    Est ce que j'ai meilleurs temp de déclarer A comme variable globale ?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 53 166
    Points
    53 166
    Par défaut
    Si tu ne modifies pas les valeurs de A à l'intérieur de la fonction, le tableau est transmis par adresse.

    Transmission par adresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function B = mafonction(A)
    B = 2*A;
    Transmission par copie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function B = mafonction(A)
    A = A+1;
    B = 2*A;
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/09/2008, 10h41
  2. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  3. Réponses: 4
    Dernier message: 29/01/2008, 11h12
  4. Réponses: 1
    Dernier message: 15/02/2007, 00h24
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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