Resolver errores: Función o variable no reconocida
Problema
Un mensaje de error frecuente indica que MATLAB® no puede encontrar un archivo de programa o una variable específicos:
Función o variable "x" no reconocida.
Existen muchas situaciones que pueden ocasionar este error. En este tema se describe cómo identificar y abordar situaciones habituales.
Posibles soluciones
Buscar errores tipográficos
Una de las causas más frecuentes es escribir mal el nombre de la función o variable. Es fácil cometer un error que no se detecta fácilmente, en especial con los nombres largos o los que contienen caracteres similares (como la letra l y el número uno).
A veces, si escribe mal un nombre, se muestra una sugerencia del nombre en la ventana de comandos. Por ejemplo, se produce un error con este comando porque incluye una letra en mayúscula en el nombre de la función.
accumArray(1,10)
Unrecognized function or variable 'accumArray'. Did you mean: >> accumarray(1,10)
Pulse Enter para ejecutar el comando sugerido o Esc para descartarlo.
Comprobar las variables del área de trabajo
Para comprobar si una variable que desea utilizar está disponible en el área de trabajo actual, utilice el comando whos.
Si la variable no aparece en la lista, estas son las posibles causas:
El código para crear la variable aún no se ha ejecutado en la sesión actual o una llamada a los comandos
clearoclearvarsha eliminado la variable. Si ha creado la variable previamente, el código suele estar disponible en el historial de comandos, al que puede acceder desde la línea de comandos utilizando la tecla de flecha arriba.Si está editando un archivo de script, es posible que el código esté intentando utilizar la variable antes de asignar un valor a esa variable. Cuando se visualiza un archivo en el editor, puede hacer clic en el nombre de una variable para encontrar todas las referencias a la variable y comprobar el orden de las operaciones.

Si la variable se encuentra en el área de trabajo y está escribiendo una función que genera el error, compruebe que está pasando la variable a la función como argumento de entrada. Las funciones no utilizan el área de trabajo básica, por lo que las variables deben pasarse explícitamente al área de trabajo de la función. Por ejemplo, esta función no puede encontrar la variable c aunque exista en el área de trabajo básica.
function y = myfunction(x) y = x + c; end
Para solucionar este problema, añada c a la línea de definición de la función.
function y = myfunction(x,c) y = x + c; end
Luego, incluya la variable en la llamada a la función.
Y = myfunction(X,c);
Para obtener más información acerca de las áreas de trabajo, consulte Áreas de trabajo básica y de función.
Comprobar la disponibilidad de la función
Si el elemento no reconocido es una función y no la conoce, compruebe si está incluida en el software instalado.
Primero, busque la función en la documentación de MathWorks más reciente. Si no hay documentación sobre esa función, consulte otros recursos, como File Exchange de MathWorks®, para localizar el software que incluye la función.
Si encuentra la función en la documentación de MathWorks:
Ejecute el código de ejemplo de la documentación para comprobar si la función está disponible. Si el código no genera el error
Unrecognized function, salte a Comprobar entradas de funciones para continuar diagnosticando el problema.Compruebe si la función es más reciente que su versión del software. Para averiguar cuándo se introdujo una función, consulte la sección Historial de versiones de su página de referencia.

Para comprobar su versión de MATLAB, utilice el comando
version. La versión aparece entre paréntesis.version
ans = '24.1.0.2661297 (R2024a) Update 5'Compruebe si el producto necesario está instalado. El producto necesario se encuentra en el panel izquierdo de la página de documentación.

Para comprobar si ese producto está instalado, utilice el comando
ver.ver
. . . MATLAB Version 24.1 (R2024a) Deep Learning Toolbox Version 24.1 (R2024a) Statistics and Machine Learning Toolbox Version 24.1 (R2024a) Text Analytics Toolbox Version 24.1 (R2024a)
Si el producto no aparece en la lista, es probable que no esté instalado. Para obtener más información sobre la instalación de productos, consulte Obtener y administrar complementos.
Si ha instalado el producto, pero no aparece en una lista regenerada desde
ver, actualice la caché de la toolbox. En la pestaña Home, en la sección Environment, haga clic en
Settings. Seleccione MATLAB > General y, después, haga clic en Update Toolbox Path Cache.Si el producto sigue sin aparecer en la lista de
ver, asegúrese de que dispone de una licencia activa para esa toolbox. Utilice el comandolicensepara mostrar las licencias activas actualmente y visite el Centro de licencias para ver los productos asociados. Para obtener más información sobre cómo gestionar licencias, consulte Gestionar sus licencias.
Comprobar entradas de funciones
Llamar a una función disponible con las variables existentes puede generar un error cuando las entradas tienen un formato que la función no puede reconocer. Consulte la documentación de la función para ver las sintaxis y los argumentos de entrada esperados. Puede acceder directamente a la documentación de la función con el comando doc.
doc functionName
Hay dos problemas habituales que pueden ser difíciles de identificar: usar expresiones de indexación inesperadas y omitir una entrada de objeto.
Indexación inesperada. Si escribe un signo de dos puntos en la posición de un argumento de entrada, MATLAB interpreta el código como una expresión de indexación en lugar de una llamada a función. Por ejemplo, la función isnumeric acepta un solo arreglo de entrada, isnumeric(A). En muchos casos, isnumeric puede detectar cuándo hay varios argumentos.
isnumeric(A,B)
Error using isnumeric Too many input arguments.
Sin embargo, con dos puntos en lugar de un argumento, MATLAB interpreta isnumeric como una variable indefinida en lugar de una función.
isnumeric(A,:)
Unrecognized function or variable 'isnumeric'.
Entrada de objeto omitida. Los métodos de objetos suelen documentarse utilizando la sintaxis de función con el formato method(object,inputs). Si suele utilizar la notación de puntos para métodos con el formato object.method(inputs), asegúrese de incluir el objeto como primera entrada cuando utilice el formato de función.
Hacer que la función esté disponible
Cuando escriba una función a la que tenga previsto llamar desde la línea de comandos o desde otro archivo:
Guarde la función en un archivo con el mismo nombre que la función. Si los nombres de la función y del archivo son diferentes, el nombre del archivo anula el nombre de la función.
Por ejemplo, guarde una función llamada
curveploten un archivo llamadocurveplotcon la extensión.mo.mlx. Si la funcióncurveplotestá en un archivo llamadocurveplotfunction.m, las llamadas a la funcióncurveplotfallan.Asegúrese de que la función sea la primera o la única función definida en el archivo y de que el archivo no incluya código fuera de las definiciones de funciones. Si la función no cumple estas condiciones, es una función local y no se puede llamar desde fuera de ese archivo. Para obtener más información, consulte Funciones locales.
Para obtener más información sobre la escritura de funciones, consulte Crear funciones en archivos.