Octave 以八度音阶打印不可见图形
当图形的可见性设置为false时,以八度打印图形有问题。例如,以下代码在Octave版本4.2.2中生成了一个“panic:segmentation fault”:Octave 以八度音阶打印不可见图形,octave,Octave,当图形的可见性设置为false时,以八度打印图形有问题。例如,以下代码在Octave版本4.2.2中生成了一个“panic:segmentation fault”: t = 1:10; fh = figure(“visible”, false); plot(t,sin(t)) print(“fig.png”) 如果我在Octave版本5.2.0中运行上述代码,就没有问题。这是在Octave 5更新中修复的错误吗?如果是这样的话,有没有一个变通方法可以用于八度音阶4?如果可能的话,我更喜欢使用八
t = 1:10;
fh = figure(“visible”, false);
plot(t,sin(t))
print(“fig.png”)
如果我在Octave版本5.2.0中运行上述代码,就没有问题。这是在Octave 5更新中修复的错误吗?如果是这样的话,有没有一个变通方法可以用于八度音阶4?如果可能的话,我更喜欢使用八度音阶4
其他说明:
我在Ubuntu16.04.6 LTS中运行这个程序,我使用apt安装了octave 4。您的问题的答案是,是的。以下是来自以下站点的相关行: 依赖项:
- GUI需要Qt库。支持的最小Qt4版本是Qt4.8。首选任何版本的Qt5
- 不再使用OSMesa库。要在使用OpenGL图形时打印不可见图形,必须提供Qt QOFFSCREENSURFACE功能,并且必须使用Qt图形工具包
但正如人们在评论中所说,最好的办法是升级您的倍频程版本,并为新版本重新编译MEX文件。您的问题的答案是,是的。以下是来自以下站点的相关行: 依赖项:
- GUI需要Qt库。支持的最小Qt4版本是Qt4.8。首选任何版本的Qt5
- 不再使用OSMesa库。要在使用OpenGL图形时打印不可见图形,必须提供Qt QOFFSCREENSURFACE功能,并且必须使用Qt图形工具包
但正如人们在评论中所说,最好的办法是升级您的octave版本,并重新编译新版本的MEX文件。使用Flatpack安装octave的更新版本非常容易:--不要因为Ubuntu16附带了octave 4而被卡住。@CrisLuengo谢谢您,Chris。将图形框架更改为gnuplot修复了oct文件特定于倍频程版本的问题。您不能将为版本4构建的版本与版本5一起使用。您需要重建它。您将以与上次完全相同的方式编译它,但这次使用的是5.2.0 mkoctfile和库。此外,从源代码构建倍频程本身通常是相当可靠的,如果不是获得倍频程的最佳方法的话。只需确保使用前缀将其安装在方便的位置(例如,
--prefix=/opt/octave-5.2.0
)。所以我怀疑这是一个问题,大多数问题都会在编译时被发现。@TasoPapstylarou谢谢,我会用正确的mkoctfile重新编译。使用Flatpack安装更新版本的Octave非常容易:--不要因为Ubuntu16附带了Octave 4而被卡住。@CrisLuengo谢谢你,Chris。将图形框架更改为gnuplot修复了oct文件特定于倍频程版本的问题。您不能将为版本4构建的版本与版本5一起使用。您需要重建它。您将以与上次完全相同的方式编译它,但这次使用的是5.2.0 mkoctfile和库。此外,从源代码构建倍频程本身通常是相当可靠的,如果不是获得倍频程的最佳方法的话。只需确保使用前缀将其安装在方便的位置(例如,--prefix=/opt/octave-5.2.0
)。所以我怀疑这是个问题,大多数问题都是在编译时发现的。@tasospapstylateanou谢谢,我还会用正确的mkoctfile重新编译,以防您试图打印到“无显示”环境(例如,通过ssh):同样,以防您试图打印到“无显示”环境(例如,通过ssh):