例如:
x = linspace(0,1,10)
y = x.^2
plot(x,y);
奇怪的是,当绘图窗口冻结时,我必须关闭Octave窗口,它们也将变得无响应。如果我不使用绘图函数,这种情况就不会发生。
我不知道原因。这是因为我使用64位版本吗?请告诉我如何解决此问题。
On Windows: \Octave\share\octave\site\m\startup\octaverc
On Linux: ~/.octaverc
如果响应是qt
,请尝试使用fltk
或gnuplot
(其中一个可能比另一个更快)。
如果上述方法不起作用,则可能需要安装/重新安装gnuplot。(感谢lukas和saurabh提供此极端案例。)
正如Assad Ebrahim所写的那样,问题出在工具包上。我在3.8.2版本中遇到了另一个问题:gnuplot根本无法工作。没有绘图窗口出现,我需要关闭Octave。如果有人遇到同样的问题,解决方法是下载gnuplot并将其安装到Octave文件夹中。它会替换旧的gnuplot,新的gnuplot就可以工作。
我感谢你的建议。
哦。我的朋友向我展示了这个命令,它很有效:
pkg rebuild -noauto oct2mat
该命令重新安装了软件包,但标记为不在启动时默认加载。这种行为现已更改,Forge软件包的新版本将不会默认加载。
问题在于oct2mat软件包根本不应该被加载。它会掩盖Octave核心的几个函数,导致其表现异常。除非你真的需要这个软件包,否则最好将其删除。
oct2mat的目的是弥补Matlab中缺少的一些函数,并使为Octave编写的代码在Matlab中运行。如果您不需要oct2mat,请将其删除。没有人需要安装所有软件包,实际上这可能会 使您的Octave安装变得更糟糕,就像oct2mat一样。
pkg
命令,Octave显示“没有此文件或目录”。 - Martin Drozdik所以在 Windows 上,这对我有效:
步骤1:将 gnuplot 安装到 C:\Program Files (x86)\gnuplot
:
下载链接:
步骤2:进入以下目录(假设您已将 Octave 安装在 C:\ 根目录下):
C:\Octave\share\octave\site\m\startup
在 Notepad 中打开该目录中的 octaverc
文件。
步骤3:
将以下行添加到文件末尾。
gnuplot_binary 'C:\Program Files (x86)\gnuplot\bin\gnuplot.exe'
graphics_toolkit('gnuplot')
第四步:
保存文件并退出记事本。如果Octave
已经打开,请关闭它。
第五步:
打开Octave
,并在其中输入以下命令进行检查:
plot([1,2,3],[4,5,6]);
请注意,第一次使用
gnuplot
可能需要长达5分钟的时间来绘制图形。因此,请不要尝试关闭应用程序。后续简单绘图通常在1秒钟以下就可以完成。
阿萨德给出的答案是完全正确的,对我也起作用。
这只是一个异常情况。
在Octave命令行中键入:graphics_toolkit
如果答案是qt
而不是fltk
,那么可能您的电脑需要从SourceForge单独安装gnuplot,因为Octave在W8/10中安装时会出现一些错误。
这里附上链接。https://sourceforge.net/projects/gnuplot/?source=directory
您不需要更改任何安装文件。
这应该可以解决问题。
当我第一次尝试绘制一个示例图时,绘图窗口出现了,但需要等待一到两分钟才能响应,然后绘图才显示。随后的绘图则可以立即显示。 操作系统:Windows 7 64位 Octave 4.0.3 64位。
我在运行你的代码时,使用Octave 4.2出现了类似的症状(无法关闭绘图窗口,绘图需要一些时间才能出现)。当语句没有以分号(;)结尾时,命令和结果将被打印在命令窗口中。在我看来,命令窗口似乎会停止解释代码,并等待用户按下有效键(f、b、q)以继续或中止执行。这个停顿点取决于先前执行的代码和命令窗口的大小,因此这些症状的间歇性。
解决方案:
选项1:转到命令窗口并不断按f(向前)
选项2:使用分号终止语句
x = linspace(0,1,10);
y = x.^2;
plot(x,y);
选项3:调整一些命令窗口设置
希望能有所帮助
我在4.0.3版本中遇到了同样的问题,将默认工具包切换为gnuplot(如Assad Ebrahim所说)对我没有用。然后我在Octave for Microsoft Windows中找到了一些东西:
当前Windows版Octave提供的gnuplot不是完整功能的。 因此,您无法使用gnuplot图形工具包的所有功能
并提供了下载和安装gnuplot的说明。希望对您有所帮助。
--no-line-editing
开关引起的,您可以通过M-x customize-variable RET inferior-octave-startup-args RET
并将--no-line-editing
更改为--line-editing
来解决它。我曾经遇到过同样的问题,
有时候linspace会在命令窗口中显示所有结果并等待您的交互。
在命令后添加;
,或在命令窗口中按q
退出
x = linspace(0,10,100);
在Octave命令窗口中输入more off
以禁用屏幕输出的分页显示。这将防止代码等待直到您看到所有行。
如果您想重新启用此功能,请使用more on