我正在使用Windows 7 64位。每次,我都使用绘图功能,绘图窗口会成功显示和绘制,但之后它会停止响应并且必须关闭它。
例如:
x = linspace(0,1,10)
y = x.^2
plot(x,y);
奇怪的是,当情节窗口冻结并且我必须关闭八度窗口时,它们也会没有响应。如果我不使用绘图功能,就不会发生这种情况。
我不知道为什么。是因为我使用的是64位版本吗?请告诉我如何解决这个问题。
答案 0 :(得分:123)
问题很可能是您的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
(一个可能比另一个更快)。
如果上述方法不起作用,您可能需要install/re-install gnuplot。 (感谢lukas和saurabh这个边缘案例)。
答案 1 :(得分:14)
正如阿萨德·易卜拉欣所写,问题在于工具包。我在3.8.2版本中遇到了另一个问题。那个gnuplot根本没用。没有绘图窗口,我需要关闭Octave。如果有人遇到同样的问题,解决方案是下载gnuplot并将其安装到Octave文件夹。它取代了旧的gnuplot,而新的gnuplot正在运行。
我感谢你的建议。
答案 2 :(得分:13)
喔。我的朋友告诉我这个命令,它工作正常:
pkg rebuild -noauto oct2mat
该命令会重新安装程序包,但会在启动时将其标记为默认不加载。此行为现已更改,默认情况下不会加载Forge软件包的新版本。
问题是永远不应该加载包oct2mat。它会影响Octave核心的几个功能,因此它开始表现得很奇怪。除非你真的需要这个软件包,否则你最好不要删除它。
oct2mat的目的是弥补Matlab中缺少缺少的函数,并使用Octlab编写的代码在Matlab中运行。如果您不需要oct2mat,请将其删除。没有人需要安装所有软件包,它实际上可以是make your Octave install worse,例如在oct2mat的情况下。
答案 3 :(得分:11)
所以在Windows上,这对我有用:
第1步:
将gnuplot安装到C:\Program Files (x86)\gnuplot
:
下载链接:
第2步: 转到给定目录下面(考虑到你已经在C:\ root中安装了Octave):
C:\倍频\共享\倍频\站点\米\启动
在记事本中打开该目录中的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秒。
答案 4 :(得分:8)
Answer given by Assad绝对正确,对我也很有用。
这只是一个例外情况。
键入Octave命令行后:graphics_toolkit
如果答案是qt
而不是fltk
,则可能需要将您的PC与SourceForge分开安装 gnuplot ,因为Octave在W8中安装时会出现一些错误/ 10。
这是附加的链接。 https://sourceforge.net/projects/gnuplot/?source=directory
您无需更改任何安装文件。
这应该有效
答案 5 :(得分:2)
当我第一次测试绘制示例图时,图形窗口出现但没有响应一到两分钟,然后出现了图。进一步的情节立即出现。 O.S。:Windows 7 64位 Octave 4.0.3 64 bit。
答案 6 :(得分:0)
我在运行代码时使用八度音程4.2有类似的症状(无法关闭绘图窗口,绘图需要时间才能显示)。当语句不以分号(;)结束时,命令和结果将在命令窗口中打印。它告诉我,命令窗口停止代码的解释并等待用户按下有效键(f,b,q)以保持或中止执行。停止点取决于先前执行的代码和命令窗口的大小,因此这些症状的间歇性。
<强>解决方案:强>
选项1:进入命令窗口并按f(向前)
选项2:使用分号终止语句
x = linspace(0,1,10);
y = x.^2;
plot(x,y);
选项3:摆弄一些命令窗口设置
希望有所帮助
答案 7 :(得分:0)
我在版本4.0.3中遇到了同样的问题,并将默认工具包切换到gnuplot,因为Assad Ebrahim said对我不起作用。然后我在Octave for Microsoft Windows找到了一些东西:
Windows的当前八度音阶发布了一个功能不全的gnuplot。 因此,您无法使用gnuplot图形工具包的全部功能
还有如何下载和安装gnuplot的说明。希望它对你有所帮助。
答案 8 :(得分:0)
以下是在从Emacs中运行八度音阶时将绘图窗口冻结的解决方案,该问题归因于问题John Lawrence Aspden的user2699和How to get Octave's plot to work under emacs?。之所以来到这里,是因为这个问题更容易找到。
该问题可能是由Emacs八度模式的M-x customize-variable RET inferior-octave-startup-args RET
开关引起的,您可以通过--no-line-editing
进行修复并将--line-editing
更改为strlen(toPrint)
。
答案 9 :(得分:0)
我有同样的问题,
有时linspace在命令窗口中显示所有结果,并等待您的交互。
在命令后添加;
,或点击q
在命令窗口中退出
x = linspace(0,10,100);
通过将more off
放入八度音阶命令窗口来禁用对屏幕输出的分页。这样可以防止代码等待您看到所有行。
如果您想重新打开它,请使用more on