Contenido principal

global

Declarar variables como globales

Descripción

Nota

Las variables globales son ineficientes y dificultan el diagnóstico de los errores. Utilice una función con variables de entrada en su lugar. Para obtener más información, consulte Avoid Unnecessary Copies of Data.

global var1 ... varN declara las variables especificadas como de ámbito global.

Comúnmente, cada función de MATLAB® tiene sus propias variables locales, que están separadas de las de otras funciones y de las del área de trabajo base. No obstante, si varias funciones declaran un nombre de variable particular como global, todas compartirán una copia única de esa variable. Cualquier cambio de valor para esa variable, en cualquier función, es visible para todas las funciones que la declaren como global.

Si la variable global no existe la primera vez que genera la instrucción global, se inicializa en una matriz vacía de 0x0.

Si en el área de trabajo actual ya existe una variable con el mismo nombre que la variable global, MATLAB genera una advertencia y modifica el valor de esa variable y su ámbito para que coincida con la variable global.

ejemplo

Ejemplos

contraer todo

Cree en su carpeta de trabajo actual una función que establezca el valor de una variable global.

function setGlobalx(val)
global x
x = val;

Cree en su carpeta de trabajo actual una función que devuelva el valor de una variable global. Estas dos funciones tienen áreas de trabajo de función separadas, pero ambas pueden acceder a la variable global.

function r = getGlobalx
global x
r = x;

Establezca el valor de la variable global, x, y obténgala de un área de trabajo diferente.

setGlobalx(1138)
r = getGlobalx
r =

        1138

Asigne un valor a la variable global con la función que definió en el ejemplo anterior.

clear all
setGlobalx(42)

Muestre el valor de la variable global, x. Aunque la variable es global, no está accesible en la línea de comandos.

x
Undefined function or variable 'x'.

Declare x como variable global en la línea de comandos y muestre su valor.

global x
x
x =

    42

Modifique el valor de x y use la función que definió en el ejemplo anterior para devolver el valor global de un área de trabajo diferente.

x = 1701;
r = getGlobalx
r =

        1701

Sugerencias

  • Para borrar una variable global de todas las áreas de trabajo, use clear global variable.

  • Para borrar una variable global del área de trabajo actual, pero no de otras, use clear variable.

  • Las variables globales tienen su propia área de trabajo, que es independiente del área de trabajo básica y de funciones. Usar variables globales resulta ineficiente. MATLAB aplica optimización de memoria a las variables de entrada en funciones, pero no a las variables globales. Para obtener más información, consulte Avoid Unnecessary Copies of Data.

    Además, las variables globales conllevan riesgos considerables. Cualquier función puede acceder a una variable global y actualizarla. Otras funciones que usan la variable pueden devolver resultados inesperados. Por ejemplo:

    • Si asigna involuntariamente a una variable global "nueva" el mismo nombre de una variable global existente, una función puede sobrescribir los valores esperados por otra. Este error es difícil de diagnosticar.

    • Si una variable global se modifica en varias funciones, llamar a esas funciones en un orden diferente puede dar lugar a resultados distintos.

    Utilice las variables globales de forma moderada, si es que las utiliza. Para obtener más información acerca de las variables y las áreas de trabajo, consulte la subsección Variables globales en la página Compartir datos entre áreas de trabajo.

Capacidades ampliadas

expandir todo

Historial de versiones

Introducido antes de R2006a