【发布时间】:2022-05-05 22:48:39
【问题描述】:
解决方案:根据用户 Andy 在 cmets 中的建议,更新到 Octave 的最新版本(目前:octave-4.0.1-rc4)解决了这个问题,情节可能是保存为 PNG。
我在 Octave 中绘制了大量的数据。但是当我尝试保存图像时,程序在没有任何解释或真正的错误消息的情况下崩溃。我的 Octave 是 4.0 版,它在 Win 8.1 上运行,graphics_toolkit 是 qt。
到目前为止,保存少量数据已经奏效,但不知何故,我似乎已经达到了可以绘制但不能保存的大小。
首先,我从向量inputs 中列出的几个文件中加载数据:
data = [];
for i = 1:length(inputs)
data = [data; load(inputs{i})];
endfor
结果是一个包含数字的 955.524 x 7 矩阵。在我的系统上单独加载需要一段时间(几分钟),但最终成功。然后我继续绘制数据:
hold on;
for j = 1:length(data(1,:))
curenntColumn = normalize(data(:,j)); % make sure all data is in the same range
plot(1:length(curenntColumn), curenntColumn, colours{j}); % plot column with distinct colour
endfor
hold off;
这导致绘制如图 1 所示的图,该图以不同的颜色正确显示了七列中每一列的所有 955.524 个条目。如果程序在这里结束,它会正确退出。但是,如果我添加
print("data.png");
打开绘图窗口后,Octave 将继续运行,并最终崩溃并显示简单的“程序不再工作”错误消息。如果我尝试从“文件”->“保存”菜单(提供另存为 PDF)手动保存,也会发生同样的情况。即使只是触摸和移动绘图窗口也需要几秒钟。
我尝试使用 gnuplot 和 fltk 作为graphics_toolkit,但后者甚至没有打开绘图窗口,而且前者似乎坏了(在尝试绘制像plot(1:10,1:10);这样的简单数据。
现在,我可以截取情节并尝试使用它,但我真的希望它自动保存。另外,我觉得很奇怪可以显示曲线,但不能保存所述显示。由于它适用于少量数据,也许我只需要以某种方式将更多资源分配给 Octave?
【问题讨论】:
-
它真的会崩溃(例如分段错误)还是只是非常慢/似乎没有响应?在 Windows 上,第一次创建 fontcache 可能需要几分钟。您是否看到错误消息或 Octave 导致问题并需要关闭?
-
@Andy,它确实崩溃了,有一个默认的 Windows 错误警报(程序不再工作)并且 Octave 已关闭。加载数据和显示图表都需要很长时间,但最终都会执行 - 如果我停在那里,一切都很好,Octave 继续工作。导致崩溃的是使用
print进行的实际保存。 -
好的,Octave 永远不会崩溃。您能否创建一个可靠地触发系统崩溃的完整示例并在此处提交错误报告:savannah.gnu.org/bugs/?func=additem&group=octave 是否仅在暂停/暂停时?
-
@Andy,感谢您的帮助!我取消了暂停/暂停,现在该函数不再崩溃,保存最新的绘图并按原样退出,打印错误消息“GL2PS 信息:OpenGL 反馈缓冲区溢出”13 次。将线路放回原位会像以前一样导致崩溃。我还应该提交错误报告吗?这是一个名为“octave-gui.exe”的外部(Windows)错误,告诉我 octave-gui.exe 不再工作并且由于问题而关闭。
-
大字体有问题:savannah.gnu.org/bugs/?func=detailitem&item_id=46417 你可以试试alpha.gnu.org/gnu/octave 的4.0.1-rc4-installer,看看那里是否解决了。