Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Octave 以八度音阶打印不可见图形_Octave - Fatal编程技术网

Octave 以八度音阶打印不可见图形

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?如果可能的话,我更喜欢使用八

当图形的可见性设置为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?如果可能的话,我更喜欢使用八度音阶4

其他说明:
我在Ubuntu16.04.6 LTS中运行这个程序,我使用apt安装了octave 4。

您的问题的答案是,是的。以下是来自以下站点的相关行:

依赖项:

  • GUI需要Qt库。支持的最小Qt4版本是Qt4.8。首选任何版本的Qt5
  • 不再使用OSMesa库。要在使用OpenGL图形时打印不可见图形,必须提供Qt QOFFSCREENSURFACE功能,并且必须使用Qt图形工具包
显然,现在不受欢迎的OSMESA依赖性和不可见图形的打印是一个问题。也许你会幸运地浏览bug评论(例如,有人说,如果你至少让它可见一次,它可能会被打印出来)


但正如人们在评论中所说,最好的办法是升级您的倍频程版本,并为新版本重新编译MEX文件。

您的问题的答案是,是的。以下是来自以下站点的相关行:

依赖项:

  • GUI需要Qt库。支持的最小Qt4版本是Qt4.8。首选任何版本的Qt5
  • 不再使用OSMesa库。要在使用OpenGL图形时打印不可见图形,必须提供Qt QOFFSCREENSURFACE功能,并且必须使用Qt图形工具包
显然,现在不受欢迎的OSMESA依赖性和不可见图形的打印是一个问题。也许你会幸运地浏览bug评论(例如,有人说,如果你至少让它可见一次,它可能会被打印出来)


但正如人们在评论中所说,最好的办法是升级您的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):