Das unterdrücken von Warnungen in GNU octave
Ich bin mit Octave version 3.4.3, und ich bekomme diese Warnung:
warning: fmincg.m:
possible Matlab-style short-circut operator at line 104, column 20
Weiß ich, warum diese Warnung tritt auf, möchte ich einfach nur die Warnung, nicht auf dem Bildschirm erscheinen, wenn Sie ausgeführt wird.
Ich weiß, ich kann unterdrückt ALLE Warnungen, indem Sie diesen Befehl, an der Spitze meiner octave-Programm:
warning('off','all');
Aber das deaktiviert alle Warnungen, die ist eine schlechte form. Wie zu deaktivieren, nur diese eine?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Deaktivieren Sie die Warnungen durch die Art der Warnung, die in GNU Octave:
Finden Sie in der Liste der Warnungen und Ihre Warnung mit id ' s und Namen hier im Abschnitt: '12.2.2 Aktivieren und Deaktivieren von Warnungen". https://octave.sourceforge.io/octave/function/warning_ids.html
Die Warnung Namen und id ' s aufgelistet sind mit octave-Befehl:
Setzen Sie diesen Befehl in Ihrer Oktave Programm, bevor die Warnung Auftritt:
oder deaktivieren Sie alle Warnungen mit
Hinweis: Wenn Ihre Warnung wird ausgelöst, indem Sie den " octave interpreter selbst, bevor das Skript ausgeführt wird, dann müssen Sie einen anderen Ansatz. Zum Beispiel verwenden
octave yourfile.m 2>/dev/null
das hat auch die unglückliche Nebenwirkung umleiten von stderr sowohl der Oktave Motor und das Skript.Bestimmte Warnungen beenden Sie den Prozess, und kann nicht unterdrückt werden, Sie müssen beseitigt werden:
Wie diese:
Dieses Problem zu beheben, umbenennen, /home/el/Oktave - /multicore-0.2.15/gethostname.m /home/el/Oktave - /multicore-0.2.15/gethostname_backup.m. Und die Warnung geht Weg. Ist es ein bug in der software, wo Sie zwei Dateien haben den gleichen Namen, so dass das Programm nicht weiß, welche man zu verwenden.
warning('off','Octave:shadowed-function')
. Keine Notwendigkeit, Dateinamen ändern. Die software dóes wissen, welche Datei zu verwenden; die erste Datei, die es findet, in seinempath
. Das ist kein Betrug, es ist einfach überladen von Funktionen.Finden sich die ID der Warnung, nur Frage
direkt nach der Warnung Auftritt.
id
jetzt enthält die id der Warnung, die verwendet werden können, um abschalten:Machen Sie Ihre änderungen persistent in zwei einfachen Schritten:
append-Befehl, um die Datei (/usr/share/octave/site/m/startup/octaverc), der ausgeführt wird, alle Octave-Befehle beim Systemstart.
echo "warning('off','Octave:shadowed-function')" >> /usr/share/octave/site/m/startup/octaverc
Ich auch gerne persitantly autoload alle Pakete:
Hinweis: Befolgen Sie diese Reihenfolge, sonst alle shadowing-Funktion Warnungen, die Sie bekommen aus dem laden aller Pakete noch angezeigt.
Ihre Datei sollte nun enthalten
Dank Gunther Struyf, für die, die uns erzählen, wie Sie zu deaktivieren Sie shadowing-Funktion Warnungen (siehe oben).
Referenz: https://wiki.archlinux.org/index.php/Octave
~/.octaverc
.