webentwicklung-frage-antwort-db.com.de

Plot-Fenster reagiert nicht

Ich verwende Windows 7 64-Bit. Jedes Mal, wenn ich die Plot-Funktion verwende, werden Plot-Fenster angezeigt und erfolgreich gezeichnet, danach reagiert sie jedoch nicht mehr und muss heruntergefahren werden.

Zum Beispiel :

x = linspace(0,1,10)
y = x.^2
plot(x,y);

Seltsamerweise, wenn Plotfenster einfrieren und ich Oktavenfenster schließen muss, werden sie auch nicht mehr reagieren. Dies geschieht nicht, wenn ich die Plot-Funktion nicht verwende.

Ich weiß nicht warum. Funktioniert es, weil ich eine 64-Bit-Version verwende? Bitte sag mir, wie ich das beheben kann.

66
hqt

Oh. Mein Freund zeigt mir diesen Befehl und es funktioniert gut: 

pkg rebuild -noauto oct2mat

Der Befehl installiert das Paket erneut, markiert es jedoch, so dass es beim Start nicht standardmäßig geladen wird. Dieses Verhalten wurde nun geändert und neue Versionen von Forge-Paketen werden standardmäßig NICHT geladen.

Das Problem ist, dass das Paket oct2mat niemals geladen werden sollte. Es schattiert mehrere Funktionen des Octave-Kerns, so dass es seltsam wirkt. Wenn Sie dieses Paket wirklich nicht benötigen, sollten Sie es einfach entfernen.

Der Zweck von oct2mat ist es, fehlende Funktionen in Matlab auszugleichen und Code für Octave in Matlab zu schreiben. Wenn Sie oct2mat nicht benötigen, entfernen Sie es. Niemand muss alle Pakete installiert haben, und es kann die Octave-Installation schlechter machen wie Oct2mat.

13
hqt

Das Problem ist wahrscheinlich das Grafik-Toolkit, das Ihre Octave-Installation verwendet.

Um dies zu überprüfen, geben Sie graphics_toolkit in die Octave-Befehlszeile ein. 

Wenn die Antwort fltk ist und Ihr Plotfenster einfriert, dann das Standard-Toolkit auf gnuplot umstellen: graphics_toolkit('gnuplot')

Testen Sie, dass das Problem behoben ist: x=1:10; y=x.^2; plot(x,y)

Machen Sie die Änderung dauerhaft in Ihrer octave.rc -Datei, die sich in Ihrem Octave-Installationsverzeichnis befindet: 

    On Windows:  \Octave\share\octave\site\m\startup\octaverc
    On Linux:     ~/.octaverc


Funktioniert immer noch nicht?

  • Wenn die Antwort qt ist, versuchen Sie entweder fltk oder gnuplot (einer ist möglicherweise schneller als der andere).

  • Wenn das obige nicht funktioniert, müssen Sie möglicherweise installieren/erneut installieren, gnuplot . (Danke an Lukas und Saurabh für diesen Edge-Fall).

119
Assad Ebrahim

Wie Assad Ebrahim schrieb, liegt das Problem im Toolkit. Ich habe ein anderes Problem in Version 3.8.2. dass der gnuplot überhaupt nicht funktionierte. Kein Plotfenster zeigte und ich musste Octave schließen. Wenn jemand dasselbe Problem hat, besteht die Lösung darin, gnuplot herunterzuladen und im Octave-Ordner zu installieren. Es ersetzt den alten Gnuplot und der Neue funktioniert.

Und ich danke Ihnen für den Rat.

14
lukas

Unter Windows funktionierte das für mich:

Schritt 1: Installieren Sie gnuplot in C:\Program Files (x86)\gnuplot:

Download-Link: 

https://sourceforge.net/projects/gnuplot/

Schritt 2: Gehe zu folgendem Verzeichnis (wenn du Octave in C:\root installiert hast): 

C:\Octave\Share\Octave\Site\m\Startup

Öffnen Sie die octaverc-Datei in diesem Verzeichnis in Notepad.

Schritt 3:

Fügen Sie am Ende der Datei folgende Zeilen hinzu.

gnuplot_binary 'C:\Program Files (x86)\gnuplot\bin\gnuplot.exe'
graphics_toolkit('gnuplot')

Schritt 4:

Speichern Sie die Datei und beenden Sie den Editor. Wenn Octave geöffnet ist, schließen Sie sie ebenfalls.

Schritt 5:

Öffnen Sie Octave und geben Sie folgenden Befehl zur Überprüfung ein:

plot([1,2,3],[4,5,6]);

Bitte beachten Sie, dass es zum ersten Mal gnuplot bis zu 5 Minuten dauern kann um das Diagramm zu rendern. Versuchen Sie also nicht, die App zu schließen. Anschließend Einfache Diagramme werden ziemlich schnell wiedergegeben, normalerweise unter einer Sekunde.

10
Anubhav Gupta

Antwort von Assad ist absolut richtig und hat auch für mich gut funktioniert. 

Dies ist nur ein Ausnahmefall.

Nachdem Sie die Octave-Befehlszeile eingegeben haben: graphics_toolkit

Wenn die Antwort qt anstelle von fltk ist, muss Ihr PC wahrscheinlich gnuplot getrennt von SourceForge installiert werden, da Octave bei der Installation in W8/10 einige Fehler bekommt.

Hier ist der Link . https://sourceforge.net/projects/gnuplot/?source=directory

Sie müssen keine Installationsdateien ändern.

Das sollte funktionieren

8
Saurabh

Beim ersten Testen eines Beispielgraphen wurde das Diagrammfenster angezeigt, reagierte jedoch ein bis zwei Minuten nicht, dann wurde der Plot angezeigt. Weitere Diagramme erschienen sofort .O.S .: Windows 7 64 Bit Octave 4.0.3 64 Bit.

2
Tarik

Im Folgenden finden Sie eine Lösung für das Einfrieren des Diagrammfensters, wenn Octave aus Emacs ausgeführt wird, und John Lawrence Aspden und user2699 aus der Frage Wie kann Octaves Plot unter Emacs funktionieren? . Es wird hierher gebracht, weil diese Frage viel einfacher zu finden ist.

Das Problem kann durch den --no-line-editing-Schalter von Emacs Octave-Mode verursacht werden. Sie können ihn durch M-x customize-variable RET inferior-octave-startup-args RET beheben und --no-line-editing in --line-editing ändern.

0
timokratia

Ich habe ähnliche Symptome bei der Verwendung von Oktave 4.2, wenn Sie Ihren Code ausführen (Plotfenster können nicht geschlossen werden, Plot braucht Zeit, um angezeigt zu werden). Wenn Anweisungen nicht mit einem Semikolon (;) enden, werden der Befehl und das Ergebnis im Befehlsfenster gedruckt. ERSUCHT, dass das Befehlsfenster die Interpretation des Codes stoppt und darauf wartet, dass der Benutzer eine gültige Taste (f, b, q) drückt, um die Ausführung zu unterbrechen oder abzubrechen. Der Haltepunkt hängt vom zuvor ausgeführten Code und der Größe des Befehlsfensters ab, daher auch von der intermittierenden Natur dieser Symptome.

Lösung:

Option 1: Gehe zum Befehlsfenster und drücke weiter f (vorwärts)

Option 2: Verwenden Sie ein Semikolon, um Anweisungen zu beenden 

x = linspace(0,1,10);
y = x.^2;
plot(x,y);

Option 3: Fiddle mit einigen Befehlsfenstereinstellungen

Ich hoffe es hilft

0
Mike

Ich hatte das gleiche Problem in Version 4.0.3 und das Standard-Toolkit auf gnuplot umgestellt, als Assad Ebrahim sagte hat bei mir nicht funktioniert. Dann finde ich etwas in Octave für Microsoft Windows :

Die aktuelle Oktave für Windows wird mit einem nicht voll funktionsfähigen Gnuplot ausgeliefert . Daher können Sie nicht alle Funktionen von gnuplot graphics toolkit nutzen

Und es gibt Anweisungen zum Herunterladen und Installieren von gnuplot. Ich hoffe es ist hilfreich für dich.

0
Xin W