2012-07-08 91 views
7

estoy usando octava versión 3.4.3, y me da esta advertencia:Cómo suprimir advertencias en GNU Octave

warning: fmincg.m: 
possible Matlab-style short-circut operator at line 104, column 20 

sé por qué se produce esta advertencia, sólo quiero hacer no aparece la advertencia en la pantalla cuando se ejecuta.

Sé que puedo suprimir todas las advertencias al poner este comando en la parte superior de mi programa de octava:

warning('off','all'); 

Pero que desactiva todas las advertencias que es de mala educación. ¿Cómo desactivar solo este?

Respuesta

9

advertencias Deshabilitar por tipo de advertencia en GNU Octave:

ver la lista de advertencias y sus nombres advertencia aquí en la sección: '12 .2.2 Activación y desactivación de Advertencias. http://www.gnu.org/software/octave/doc/interpreter/Enabling-and-Disabling-Warnings.html

poner este comando en su programa de octava antes de que el aviso se produce:

warning('off', 'Octave:possible-matlab-short-circuit-operator'); 

Obtener más información acerca de la identificación de alerta

Una vez que esté en la consola de octava, utiliza este comando para que la octava te cuente acerca de las identificaciones de advertencia.

help warning_ids 

Ciertas advertencias terminar el proceso, y no pueden ser suprimidos, que deben ser corregidos:

como ésta:

warning: function /home/el/octave/multicore-0.2.15/gethostname.m 
     shadows a built-in function 

Para solucionar este problema, cambie el nombre de/home/el/octave/multicore-0.2.15/gethostname.m a /home/el/octave/multicore-0.2.15/gethostname_backup.m. Y la advertencia desaparece. Es un error en el software donde dos archivos tienen el mismo nombre, por lo que el programa no sabe cuál usar.

+2

es posible desactivar esa última advertencia con: 'advertencia ('off', 'Octave: funciones sombra')' . No es necesario cambiar los nombres de los archivos. El software sabe qué archivo usar; el primer archivo que encuentra en su 'ruta'. Esto no es un engaño, solo está sobrecargando funciones. –

+0

advertencia ya no aparece en la lista en http://www.gnu.org/software/octave/doc/interpreter/Enabling-and-Disabling-Warnings.html, tan útil para saber lastwarn (vea la respuesta @Scz a continuación) – seanv507

3

Realice los cambios persistentes en dos sencillos pasos:

  1. root
  2. comando append en el fichero (/ usr/share/octava/site/m/inicio/octaverc), que ejecutará cualquier comando de Octave al inicio.

    echo "warning('off','Octave:shadowed-function')" >> /usr/share/octave/site/m/startup/octaverc

También me gusta persitantly carga automática todos los paquetes:

echo "pkg load all" >> /usr/share/octave/site/m/startup/octaverc 

Nota: seguir este orden, si no todas las advertencias de función sombreada que se obtiene de la carga de todos los paquetes aún aparecerán.

su archivo debe contener ahora

warning('off','Octave:shadowed-function') 
pkg load all 

Gracias a Gunther Struyf, para decirnos cómo desactivar las advertencias de función sombreados (arriba). Referencia: https://wiki.archlinux.org/index.php/Octave

+2

Creo que no necesita convertirse en root, si solo pone el comando en '~/.octaverc'. – Scz

+0

@Scz Tienes razón. Gracias por la nota. Para realizar cambios en todo el sistema, use la ruta/usr anterior. Para realizar cambios solo para su perfil de usuario, edite ~/.octaverc –

4

a averiguar el ID de su advertencia, simplemente emitir

[text, id] = lastwarn() 

directamente después se produce la advertencia. id ahora contiene el id de la advertencia, que puede ser utilizado para activarlo o desactivarlo:

warning('off', id) 
+0

Documentación para esta función: https://octave.sourceforge.io/octave/function/lastwarn.html – waldyrious

Cuestiones relacionadas