web-dev-qa-db-ja.com

プロットウィンドウが応答しない

Windows 7 64ビットを使用しています。プロット関数を使用するたびに、プロットウィンドウは正常に表示および描画されますが、その後は応答を停止し、シャットダウンする必要があります。

例えば ​​:

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

奇妙なことに、プロットウィンドウがフリーズし、オクターブウィンドウを閉じる必要がある場合、それらも応答しなくなります。プロット機能を使用しない場合、これは起こりません。

理由はわかりません。 64ビットバージョンを使用しているからですか?これを修正する方法を教えてください。

70
hqt

ああ。私の友人は私にこのコマンドを示し、それはうまく動作します:

pkg rebuild -noauto oct2mat

このコマンドはパッケージを再インストールしますが、起動時にデフォルトでロードしないようにマークします。この動作は現在変更されており、Forgeパッケージの新しいリリースはデフォルトではロードされません。

問題は、oct2matパッケージをロードしてはならないことです。 Octaveコアのいくつかの機能を隠すため、奇妙な動作を開始します。このパッケージが本当に必要でない限り、単に削除する方が良いでしょう。

Oct2matの目的は、Matlabに不足している関数がないことを補い、Octave向けに記述されたコードをMatlabで実行することです。 oct2matが必要ない場合は、削除してください。すべてのパッケージをインストールする必要はありません。実際には octaveのインストールを悪化させる oct2matの場合のように。

13
hqt

問題は、Octaveのインストールで使用しているグラフィックツールキットである可能性があります。

これを確認するには、Octaveコマンドラインにgraphics_toolkitと入力します。

応答がfltkで、プロットウィンドウがフリーズしている場合、デフォルトツールキットをgnuplotに切り替えます:graphics_toolkit('gnuplot')

問題が修正されたことをテストします:x=1:10; y=x.^2; plot(x,y)

Octaveインストールディレクトリにあるoctave.rcファイルで変更を永続的にします。

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

  • 応答がqtの場合、fltkまたはgnuplotのいずれかを試してください(一方が他方よりも速い場合があります)。

  • 上記が機能しない場合は、 gnuplotのインストール/再インストール が必要になる場合があります。 (このEdgeケースのlukasとsaurabhに感謝します)。

126
Assad Ebrahim

Assad Ebrahimが書いたように、問題はツールキットにあります。バージョン3.8.2で別の問題が発生しました。 gnuplotがまったく機能しなかったこと。プロットウィンドウが表示されず、Octaveを閉じる必要がありました。誰かが同じ問題を抱えている場合、解決策はgnuplotをダウンロードしてOctaveフォルダにインストールすることです。古いgnuplotを置き換え、新しいgnuplotが機能しています。

そして、アドバイスをありがとう。

14
lukas

だから、Windowsでは、これは私のために働いた:

ステップ1:gnuplotをC:\Program Files (x86)\gnuplotにインストールします:

ダウンロードリンク:

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

ステップ2:指定されたディレクトリの下に移動します(C:\ルートにOctaveをインストールしたと考えてください):

C:\ Octave\share\octave\site\m\startup

メモ帳でそのディレクトリにあるoctavercファイルを開きます。

ステップ3:

ファイルの最後に次の行を追加します。

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

ステップ4:

ファイルを保存して、メモ帳を終了します。 Octaveが開いている場合は、閉じてください。

ステップ5:

Octaveを開き、次のコマンドを入力して確認します。

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

グラフをレンダリングするのにgnuplot最大5分かかる場合があることに注意してください。そのため、アプリを閉じないでください。その後の単純なプロットは、通常1秒未満で非常に高速にレンダリングされます。

11
Anubhav Gupta

Assadからの回答 は絶対に正しいもので、私にとってもうまくいきました。

これは例外ケースです。

Octaveコマンドラインを入力した後:graphics_toolkit

答えがqtではなくfltkの場合、おそらくOctaveが取得するSourceForgeとは別にPCをインストールする必要がありますgnuplot W8/10でのインストール中にエラーが発生しました。

こちらがリンクです。 https://sourceforge.net/projects/gnuplot/?source=directory

インストールファイルを変更する必要はありません。

これは動作するはずです

8
Saurabh

サンプルグラフのプロットを最初にテストしたとき、グラフウィンドウは表示されましたが、1〜2分間応答しなかった後、プロットが表示されました。さらなるプロットが即座に現れました。 O.S .: Windows 7 64ビットOctave 4.0.3 64ビット。

2
Tarik

以下はEmacs内からOctaveを実行中で、 John Lawrence Aspden および ser2699 からの質問 Octaveのプロットをemacsの下で動作させるには? 。この質問は見つけやすいので、ここに持ってきました。

この問題はEmacsオクターブモードの--no-line-editingスイッチが原因である可能性があります。M-x customize-variable RET inferior-octave-startup-args RETで修正し、--no-line-editing--line-editingに変更できます。

0
timokratia

コードの実行時にオクターブ4.2を使用すると、同様の症状が現れます(プロットウィンドウを閉じることができません。プロットの表示に時間がかかります)。ステートメントがセミコロン(;)で終わらない場合、コマンドと結果はコマンドウィンドウに出力されます。コマンドウィンドウがコードの解釈を停止し、ユーザーが有効なキー(f、b、q)を押して実行を中断または中止するのを待つことはわかりました。停止ポイントは、以前に実行されたコードとコマンドウィンドウのサイズ、したがってこれらの症状の断続的な性質に依存します。

解決策:

オプション1:コマンドウィンドウに移動し、fを押し続ける(進む)

オプション2:セミコロンを使用してステートメントを終了する

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

オプション3:Fiddleといくつかのコマンドウィンドウ設定

それが役に立てば幸い

0
Mike

バージョン4.0.3でも同じ問題があり、デフォルトツールキットをgnuplotに切り替えると Assad Ebrahim氏 が機能しませんでした。次に、 Microsoft WindowsのOctave で何かを見つけます:

Windows用の現在のオクターブには、フル機能ではないgnuplotが含まれています。したがって、gnuplotグラフィックツールキットのすべての機能を使用することはできません

そして、gnuplotをダウンロードしてインストールする方法の説明があります。お役に立てば幸いです。

0
Xin W