Main Content

global

Déclarer des variables comme globales

Description

exemple

global var1 ... varN permet de déclarer les variables var1 ... varN avec une portée globale.

En règle générale, chaque fonction MATLAB® dispose de ses propres variables locales, qui sont distinctes de celles des autres fonctions et de celles de l’espace de travail de base. Toutefois, si plusieurs fonctions déclarent toutes un nom de variable particulier comme étant global, elles partagent toutes une seule copie de cette variable. Toute modification de valeur de cette variable dans n’importe quelle fonction est visible par toutes les fonctions qui la déclarent comme globale.

Si la variable globale n’existe pas la première fois que vous lancez l’instruction global, elle est initialisée sur une matrice 0x0 vide.

Si une variable portant le même nom que la variable globale existe déjà dans l’espace de travail actuel, MATLAB émet un avertissement et modifie la valeur et la portée de cette variable afin qu’elle corresponde à la variable globale.

Exemples

réduire tout

Dans votre dossier de travail courant, créez une fonction qui définit la valeur d’une variable globale.

function setGlobalx(val)
global x
x = val;

Dans votre dossier de travail courant, créez une fonction qui renvoie la valeur d’une variable globale. Ces deux fonctions disposent d’espaces de travail distincts, mais elles ont toutes les deux accès à la variable globale.

function r = getGlobalx
global x
r = x;

Définissez la valeur de la variable globale x et obtenez-la depuis un autre espace de travail.

setGlobalx(1138)
r = getGlobalx
r =

        1138

Attribuez une valeur à la variable globale à l’aide de la fonction définie dans l’exemple précédent.

clear all
setGlobalx(42)

Affichez la valeur x de chaque variable. Même si la variable est globale, elle n’est pas accessible depuis la ligne de commande.

x
Undefined function or variable 'x'.

Déclarez x comme variable globale depuis la ligne de commande et affichez sa valeur.

global x
x
x =

    42

Modifiez la valeur de x et utilisez la fonction définie dans l’exemple précédent pour renvoyer la valeur globale depuis un autre espace de travail.

x = 1701;
r = getGlobalx
r =

        1701

Conseils

  • Pour effacer une variable globale de tous les espaces de travail, utilisez clear global variable.

  • Pour effacer une variable globale de l’espace de travail courant uniquement, utilisez clear variable.

Historique des versions

Introduit avant R2006a