Global var

Résolu/Fermé
atiffa Messages postés 54 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 10 juin 2009 - 9 févr. 2008 à 16:26
atam1987 Messages postés 2 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 4 octobre 2012 - 26 sept. 2012 à 11:05
Bonjour,
j'ai besoin que qlq'un me donne des exemples sur l'utilisation d'un variable globale
ou bien une explication simplifier sur comment j'utilise un variable global dans un programme matlab
je vous remercie beaucoup
merci pour votre aide

5 réponses

Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
13 févr. 2008 à 23:48
Salut de nouveau atiffa
Comme pour les autres posts : help global

Pour les explications :
Quand tu définis une variable à l'intérieur d'une fonction, elle est locale. Sorti de ta fonction la variable existe plus (sauf si c'est une variable de sortie).
Je connais pas trop ton domaine, mais si t'as une constante physique par exemple que tu utilises dans plein de fonctions, plutôt que de la passer en argument à chaque fois ou de la redéfinir dans chaque fonction, tu la définis une fois pour toute comme variable globale.

Exemple, je sais pas...
Tu fais une gros programme qui fait appel à des petites fonctions. Appelons main.m le gros programme et supposons que ton programme soit un truc d'électromagnétisme.
T'auras alors besoin de la permittivité diélectrique du vide ε0, de la perméabilité magnétique du vide μ0 et de la vitesse de la lumière c=1/√(ε0μ0) dans toutes les petites sous fonctions.

T'écris ton programme main.m
global eps0;
global mu0;
global c;
eps0=8.85418781762039e-12;
mu0=pi*4e-7;
c=1/sqrt(eps0*mu0);
%% Des calculs...
...
%% Appel d'une première fonction pour laquelle on peut avoir
%% besoin des constantes précédemment définies
ma_fonction1 (liste_arguments_1)
%% Appel d'une seconde fonction pour laquelle on peut avoir
%% besoin des constantes précédemment définies
ma_fonction2(liste_arguments_2)
%% Etc...
...

Et pour chaque fonction, d'une part tu n'auras pas à passer les constantes en arguments et d'autre part tu n'auras pas à redéfinir ces constantes dans les fonctions.

Après tu peux aussi définir la valeur d'une variable globale du main.m par appel d'une fonction...

Ça te va à peu près ou pas du tout?
8
atiffa Messages postés 54 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 10 juin 2009 12
14 févr. 2008 à 10:23
Re:Salut sacabouff

On fait ce qui je trouve contradictoire c'est que on déclare une constante comme variable globale

je pense que tu ma bien aider avec ton exemple
et je te remercie pour tes aides et surtôut pour ta patience
tu as l'aire trés sympa
je te remercie beaucoup
A plus
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
14 févr. 2008 à 14:10
Rere salut
Oui t'as pas tort, c'est vrai que mon exemple pouvait porter à confusion.
Disons que c'est plus le nom en fait qui est global, j'ai donné un exemple avec des constantes parce que c'est le premier truc qui m'est passé par ma ptite tête.
Mais par exemple dans un gros programme main.m, tu peux aussi faire quelque chose de ce genre avec une variable globale U :
global U
%% U est une matric 3x3 aléatoire au départ par exemple
U=rand(3,3);
%% Appel d'une fonction qui modifie U
ma_fonction(liste_arguments)
%% Etc..
...

Et dans la liste des arguments il n'y aura pas la variable U puisqu'elle est globale. Donc la terminologie "variable" est adaptée dans ce cas puisque tu peux modifier U à volonté.

Mais tape help global sous Matlab ce sera peut-être plus clair pour toi que mes explications.

"tu as l'air très sympa"
Te fie pas aux apparences :-D

A plus
0
atiffa Messages postés 54 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 10 juin 2009 12
14 févr. 2008 à 15:17
Re salut

en fait avant que je pose chaque question sur le forum je cherche dans le help et sur internet et quand j'ai des mal à comprend qlq chose je passe au forum

mon probléme c'est que je suis vraiment débutant en informatique c'est pour ca j'ai des mal à comprend parfois
en tous cas je te remercie beaucoup

" quand j'ai dit tu as l'air très sympa, c'est / à ta disponibilité et ta patience quand tu me répond"
et sans arrier ponser :-D

A plus
0
Sacabouffe Messages postés 9427 Date d'inscription dimanche 19 août 2007 Statut Membre Dernière intervention 29 mai 2009 1 834
14 févr. 2008 à 15:32
OK, OK...
Je me doutais bien que c'était sans arrière pensée. Je rigolais, ça me fait plaisir que tu penses ça.
Je réponds à ton autre post.
0
atiffa Messages postés 54 Date d'inscription lundi 4 février 2008 Statut Membre Dernière intervention 10 juin 2009 12
15 févr. 2008 à 15:44
merci encore
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
atam1987 Messages postés 2 Date d'inscription mercredi 26 septembre 2012 Statut Membre Dernière intervention 4 octobre 2012
26 sept. 2012 à 11:05
bon jour

mais est ce que tu peut me donner un exemple de passer en argument à chaque fois ou de la redéfinir dans chaque fois (le contraire) , pour mieux déterminer la différence

merci pour votre aide
0