Contenuto principale

La traduzione di questa pagina non è aggiornata. Fai clic qui per vedere l'ultima versione in inglese.

global

Dichiarare le variabili come globali

Descrizione

Nota

Le variabili globali non sono efficienti e rendono difficile la diagnosi degli errori. Utilizzare invece una funzione con variabili di input. Per maggiori informazioni, vedere Avoid Unnecessary Copies of Data.

global var1 ... varN dichiara le variabili specificate come globali nel loro ambito.

Normalmente, ciascuna funzione di MATLAB® ha le proprie variabili locali, separate da quelle delle altre funzioni e da quelle del workspace di base. Tuttavia, se diverse funzioni dichiarano tutte un particolare nome di variabile come global, allora tutte condivideranno una singola copia di quella variabile. Qualsiasi modifica del valore di tale variabile, in qualsiasi funzione, è visibile a tutte le funzioni che la dichiarano come globale.

Se la variabile globale non esiste alla prima emissione della dichiarazione global, viene inizializzata a una matrice vuota 0x0.

Se nel workspace corrente esiste già una variabile con lo stesso nome della variabile globale, MATLAB genera un avviso e modifica il valore di tale variabile e del suo ambito in modo che corrispondano alla variabile globale.

esempio

Esempi

comprimi tutto

Creare una funzione nella cartella di lavoro corrente che imposti il valore di una variabile globale.

function setGlobalx(val)
global x
x = val;

Creare una funzione nella cartella di lavoro corrente che restituisca il valore di una variabile globale. Queste due funzioni hanno un workspace di funzione separato, ma entrambe possono accedere alla variabile globale.

function r = getGlobalx
global x
r = x;

Impostare il valore della variabile globale x e ottenerlo da un altro workspace.

setGlobalx(1138)
r = getGlobalx
r =

        1138

Assegnare un valore alla variabile globale utilizzando la funzione definita nell'esempio precedente.

clear all
setGlobalx(42)

Visualizzare il valore della variabile globale x. Sebbene la variabile sia globale, non è accessibile dalla riga di comando.

x
Undefined function or variable 'x'.

Dichiarare x come variabile globale dalla riga di comando e visualizzarne il valore.

global x
x
x =

    42

Modificare il valore di x e utilizzare la funzione definita nell'esempio precedente per restituire il valore globale da un diverso workspace.

x = 1701;
r = getGlobalx
r =

        1701

Suggerimenti

  • Per cancellare una variabile globale da tutti i workspace, utilizzare clear global variable.

  • Per cancellare una variabile globale dal workspace corrente ma non dagli altri, utilizzare clear variable.

  • Le variabili globali hanno un loro workspace, separato da quello delle basi e delle funzioni. L'utilizzo di variabili globali non è efficiente. MATLAB applica l'ottimizzazione della memoria alle variabili di input nelle funzioni, ma non alle variabili globali. Per maggiori informazioni, vedere Avoid Unnecessary Copies of Data.

    Inoltre, le variabili globali comportano notevoli rischi. Qualsiasi funzione può accedere e aggiornare una variabile globale. Altre funzioni che utilizzano la variabile potrebbero restituire risultati inattesi. Ad esempio:

    • Se si assegna involontariamente a una “nuova” variabile globale lo stesso nome di una variabile globale esistente, una funzione può sovrascrivere i valori attesi da un'altra. Questo errore è difficile da diagnosticare.

    • Se una variabile globale viene modificata in più funzioni, la chiamata di tali funzioni in un ordine diverso può portare a risultati differenti.

    Utilizzare le variabili globali con parsimonia, se non addirittura non utilizzarle del tutto. Per maggiori informazioni sulle variabili e sul workspace, vedere la sottosezione Variabili globali alla pagina Share Data Between Workspaces.

Cronologia versioni

Introduzione prima di R2006a