Variables globales en MATLAB

Las variables en programación son generalmente espacios de almacenamiento para almacenar cierto tipo de datos. Hay muchos tipos de variables, pero dos tipos de uso común son las variables locales y globales. Generalmente, cada función de MATLAB tiene sus propias variables locales. Pero a veces, por el bien de la programación, necesitamos cambiar el valor de la variable local en otra función. A veces se convierte en una tarea tediosa de realizar. Aquí viene la necesidad de las variables globales. Si declaramos cualquier variable como global, podemos acceder a esa variable desde cualquier función. Básicamente, todas las funciones comparten la misma copia de la variable. Cualquier cambio de valor a esa variable, en cualquier función, es visible para todas las funciones que la declaran como global.

Establecer variable como Global en MATLAB

Una variable en MATLAB se establece como global escribiendo un comando global antes de los nombres de las variables. Al declarar cualquier variable como global por primera vez, la variable se inicializa en una array 0X0 vacía . Si se declara cualquier variable con el mismo nombre que una variable global mientras la variable global existe en el espacio de trabajo actual, MATLAB crea una advertencia y cambia esa variable y su alcance para que coincida con la variable global. Tenemos que escribir el comando global en cada función donde queremos usar esa variable global. A continuación se dan algunos consejos útiles.

  • Si queremos borrar una variable global de todos los lugares de trabajo, podemos usar el comando: borrar variable global .
  • Por otro lado, el comando » borrar variable » solo borrará la variable del espacio de trabajo actual, no de los otros espacios de trabajo.

Sintaxis: global nombre_variable1 … nombre_variableN

Nota: Aquí hemos declarado N variables globales donde el nombre de la i -ésima variable global es variable_namei. Generalmente, para el nombre de las variables globales se utilizan letras mayúsculas, de modo que podamos diferenciar fácilmente entre las variables locales y las globales.

Supongamos que declaramos una variable global siguiendo la sintaxis anterior con el nombre global variable_name dentro de la función A. Ahora, queremos modificar esa variable global en la función B. En ese caso, necesitamos escribir el comando global antes de variable_name nuevamente dentro de la función B . De lo contrario, no funcionará. Los siguientes son los ejemplos.

Tomamos un script Am y una función llamada función B se usa por ejemplo.

  • Compartir variables globales entre dos funciones

En este caso, declararemos la variable global X en el script Am y la modificaremos dentro de la función B e intentaremos ver el resultado.

Ejemplo:

Matlab

% MATLAB code for function B 
% and save as MATLAB script name B.m
  
function B()
    global X
    % global command used 
    % as we want to modify the global
    % variable declared in A.m
    X = X*5;
end

Guión de MATLAB

Matlab

% MATLAB code for main script A.m
global X; % declaring global function
X = 3;
disp("value of X before modification:");
X
B(); % calling B function written above.
disp("value of X after modification:");
X

Producción:

  • Compartir variable global entre función y línea de comando

Aquí declararemos la variable global en la ventana de comandos y la modificaremos dentro de la función B e intentaremos ver el resultado.

Matlab

% MATLAB Code for global variable in the 
% command window and will modify it inside 
% function B for this again we use script B.M
function B()
global X
     
% global command used 
% as we want to modify the global
% variable declared in A.m
X = X*5;
end

Producción:

  • Si el comando global no se usa en todas las funciones:

Aquí declararemos la variable global en el script Am e intentaremos modificar la variable dentro de la función B sin usar el comando ‘global’ . Pero en la salida, veremos que la variable no se modificará ya que no usamos el comando ‘global’ dentro de la función B.

Matlab

% MATLAB code for  declare the global 
% variable in script A.m and will try to
% modify the variable inside function B without
% using the command 'global'function B()
 function B()
 X = 3*5;
   
 end

Matlab

% MATLAB code declare the global variable in 
% script A.m and will try to modify the variable
% inside function B without using the command 'global'
global X; 
X = 3;
  
disp("value of X before modification:");
X
  
B(); % calling B function written above.
disp("value of X after modification:");
X

Producción:

Publicación traducida automáticamente

Artículo escrito por tenacious39 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *