2012-07-08 19 views
7

Sto usando ottava versione 3.4.3, e ottengo questo avvertimento:Come sopprimere avvertimenti in GNU Octave

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

so perché si verifica questo avvertimento, voglio solo fare non appare l'avviso sullo schermo quando è in esecuzione.

so di poter sopprimere tutte le avvertenze mettendo questo comando nella parte superiore del mio programma di ottava:

warning('off','all'); 

Ma che disabilita tutte le avvertenze che è di cattivo gusto. Come disabilitare solo questo?

risposta

9

Disattiva avvisi per tipo di avvertimento in GNU Octave:

vedere l'elenco delle avvertenze e le loro nomi di avvertimento qui nella sezione: '12 .2.2 Attivazione e disattivazione avvertenze. http://www.gnu.org/software/octave/doc/interpreter/Enabling-and-Disabling-Warnings.html

mettere questo comando nel programma di ottava prima che l'avviso si verifica:

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

Più informazioni su

Dopo che siete nella console ottava, utilizza questo comando del ID avvertimento avere l'ottava per informarti sugli ID di avviso.

help warning_ids 

Alcuni avvertimenti terminare il processo, e non possono essere soppressi, devono essere eliminati:

Come questo:

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

Per risolvere questo problema, rinominare/home/el/octave/multicore-0.2.15/gethostname.m a /home/el/octave/multicore-0.2.15/gethostname_backup.m. E l'avviso va via. È un bug nel software in cui due file hanno lo stesso nome, quindi il programma non sa quale usare.

+2

è possibile disabilitare tale ultimo avvertimento con: 'warning ('off', 'ottava: ombreggiato funzione')' . Non è necessario cambiare i nomi dei file. Il software conosce il file da utilizzare; il primo file che trova nel suo 'percorso'. Questo non è un inganno, è solo un sovraccarico di funzioni. L'avviso –

+0

non è più elencato su http://www.gnu.org/software/octave/doc/interpreter/Enabling-and-Disabling-Warnings.html, quindi è utile sapere lastwarn (vedi risposta @Scz di seguito) – seanv507

3

Fai la tua modifiche persistente in due semplici passaggi:

  1. root
  2. comando append al file (/ usr/share/ottava/site/m/startup/octaverc), che eseguirà qualsiasi comando Octave all'avvio.

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

Mi piace anche persitantly caricare automaticamente tutti i pacchetti:

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

NOTA: seguire questo ordine, altrimenti eventuali avvisi-funzione ombra si ottiene da caricare tutti i pacchetti saranno ancora visualizzati.

il file dovrebbe contenere

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

Grazie a Gunther Struyf, per dirci come disattivare gli avvisi di funzione in ombra (sopra). Riferimento: https://wiki.archlinux.org/index.php/Octave

+2

Penso che tu non è necessario diventare root, basta mettere il comando in ~ ~/.octaverc'. – Scz

+0

@Scz Hai ragione. Grazie per la nota. Per apportare modifiche a tutto il sistema, usa il percorso/usr sopra. Per apportare modifiche solo al tuo profilo utente, modifica ~/.octaverc –

4

Per scoprire l'ID del tuo avvertimento, basta rilasciare

[text, id] = lastwarn() 

subito dopo si verifica l'avviso. id ora contiene l'ID della segnalazione, che può essere utilizzato per disattivarlo:

warning('off', id) 
+0

Documentazione per questa funzione: https://octave.sourceforge.io/octave/function/lastwarn.html – waldyrious

Problemi correlati