Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Las variables en funciones anidadas y anónimas

Las reglas de ámbito para las funciones anidadas y anónimas requieren que todas las variables utilizadas en la función estén presentes en el texto del código.

Si intenta agregar dinámicamente una variable al área de trabajo de una función anónima, una función anidada o una función que contiene una función anidada, emite un error del formularioMATLAB®

Attempt to add variable to a static workspace. 

En esta tabla se describen las operaciones típicas que intentan la asignación dinámica y las formas recomendadas para evitarlo.

Tipo de operación

Práctica recomendada para evitar la asignación dinámica

load

Especifique el nombre de la variable como entrada para la función.load O, asigne la salida de la función a una matriz de estructura.load

Oevalevalinassignin

Si es posible, evite el uso total de estas funciones. Ver.Alternativas a la función eval

Llamar a un script que crea una variableMATLAB

Convierta el script en una función y pase la variable utilizando argumentos. Este enfoque también aclara el código.

La asignación a una variable en el depuradorMATLAB

Asigne la variable al espacio de trabajo base, como

K>> assignin('base','X',myvalue)

Otra forma de evitar la asignación dinámica es declarar explícitamente la variable dentro de la función. Por ejemplo, supongamos que un script denominado asigna un valor a variable.makeX.mX Una función que llama explícitamente declara evita el error de asignación dinámica porque está en el área de trabajo de la función.makeXandXX Una forma común de declarar una variable es inicializar su valor en una matriz vacía:

function noerror X = []; nestedfx     function nestedfx       makeX    end end

Temas relacionados