Main Content

Suprimir advertencias

Es posible que su programa emita advertencias que no siempre afectan de forma negativa a la ejecución. Para evitar confusiones, puede ocultar los mensajes de advertencia durante la ejecución cambiando sus estados de 'on' a 'off'.

Para suprimir mensajes de advertencia concretos, primero debe buscar el identificador de la advertencia. Cada mensaje de advertencia tiene un identificador único. Para buscar el identificador asociado con una advertencia de MATLAB®, reproduzca la advertencia. Por ejemplo, este código reproduce una advertencia generada si MATLAB intenta eliminar una carpeta que no existe:

rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path. 

Nota

Si esta instrucción no genera un mensaje de advertencia, utilice el siguiente código para habilitar temporalmente la visualización de todas las advertencias y, después, restaure el estado original de la advertencia:

w = warning ('on','all');
rmpath('folderthatisnotonpath')
warning(w)

Para obtener información sobre la advertencia emitida más reciente, utilice las funciones warning o lastwarn. Este código utiliza el estado query para devolver una estructura de datos que contiene el identificador y el estado actual de la última advertencia:

w = warning('query','last')
w = 

    identifier: 'MATLAB:rmpath:DirNotFound'
         state: 'on'
Puede guardar el campo del identificador en la variable id:
id = w.identifier;

Nota

warning('query','last') devuelve la última advertencia que se mostró. MATLAB solo muestra mensajes de advertencia con state: 'on' y un identificador de advertencia.

Utilizando la función lastwarn puede recuperar el último mensaje de advertencia, independientemente del estado de visualización:

lastwarn
ans =

"folderthatisnotonpath" not found in path.

Activar y desactivar advertencias

Una vez haya obtenido el identificador con el estado query, utilice esta información para deshabilitar o habilitar la advertencia asociada con ese identificador.

Siguiendo con el ejemplo de la sección anterior, deshabilite la advertencia 'MATLAB:rmpath:DirNotFound' y repita la operación.

warning('off',id)
rmpath('folderthatisnotonpath')

MATLAB no muestra ninguna advertencia.

Active la advertencia e intente eliminar una ruta que no existe:

warning('on',id)
rmpath('folderthatisnotonpath')
Warning: "folderthatisnotonpath" not found in path.

Ahora MATLAB emite una advertencia.

Sugerencia

Desactive la advertencia invocada más reciente con warning('off','last').

Controlar todas las advertencias

El término todas hace referencia únicamente a aquellas advertencias que se han emitido o modificado durante la sesión actual de MATLAB. Los estados de las advertencias modificadas se mantienen solo durante la sesión actual. Al iniciar una nueva sesión, se restaura la configuración predeterminada.

Utilice el identificador 'all' para representar el grupo de todas las advertencias. Visualice el estado de todas las advertencias con una de las siguientes sintaxis:

warning('query','all')
warning

Para activar todas las advertencias y comprobar el estado:

warning('on','all')
warning('query','all')
All warnings have the state 'on'.

Para desactivar todas las advertencias y comprobar el estado, utilice esta sintaxis:

warning('off','all')
warning
All warnings have the state 'off'.

Temas relacionados