首次使用图形功能(plot,imagesc等)时,Octave会挂起,

时间:2018-01-14 08:03:53

标签: plot octave

当我第一次使用绘图功能(例如,plot(1,1))时,Octave会挂起几分钟。对相同功能的第二次和后续调用执行得非常快。下次启动Octave时会重复相同的行为。我使用Octave 4.2.1和qt graphics_toolkit和gnuplot graphics_toolkit。操作系统是Windows 7和10.我使用了标准的Octave安装程序。

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

这个问题很常见。例如,请参阅 - Cannot use Octave 4.0.0 graphics toolkit functionsPlot doesn't work in Octave 4.0.0但我找不到任何解决此问题的方法。所以我做了自己的调查。

当Octave挂起时,我运行了着名的实用程序process-explorer,我看到Octave打开了Windows字体文件夹(c:\ Windows \ Fonts)中的所有文件。我的电脑上这个文件夹的大小约为400 MB!我搜索谷歌并发现,Octave可以使用font的缓存。有用于创建字体缓存的特殊实用程序和脚本文件(请参阅comment to bug)。因此,解决这个问题非常简单:

  1. 转到Octave文件夹(c:\ Octave \ Octave-4.2.1 \在我的电脑上)
  2. 运行脚本 - fc_update.bat
  3. 启动Octave并检查首次调用绘图函数时是否有任何挂起或冻结。
  4. 此脚本有两个连续启动的日志:

      

    C:\倍频\倍频4.2.1> fc_update.bat
      “更新fc-cache(可能需要一段时间)......”   C:/ WINDOWS / fonts:缓存,新缓存内容:1012个字体,0个目录
      C:/ WINDOWS / fonts:无法写入缓存
      C:/Users/Sergey/.local/share/fonts:跳过,没有这样的目录
      C:/Users/Sergey/.fonts:跳过,没有这样的目录
      C:/ Users / Sergey / AppData / Local / fontconfig / cache:清理缓存目录
      C:/Users/Sergey/.cache/fontconfig:不清除不存在的缓存目录
      C:/Users/Sergey/.fontconfig:清理缓存目录
      c:\ Octave \ Octave-4.2.1 \ bin \ fc-cache.exe:失败
      “完成”。

         

    C:\倍频\倍频4.2.1> fc_update.bat
      “更新fc-cache(可能需要一段时间)......”   C:/ WINDOWS / fonts:跳过,现有缓存有效:1012个字体,0个dirs
      C:/Users/Sergey/.local/share/fonts:跳过,没有这样的目录
      C:/Users/Sergey/.fonts:跳过,没有这样的目录
      C:/ Users / Sergey / AppData / Local / fontconfig / cache:清理缓存目录
      C:/Users/Sergey/.cache/fontconfig:不清除不存在的缓存目录
      C:/Users/Sergey/.fontconfig:清理缓存目录
      c:\ Octave \ Octave-4.2.1 \ bin \ fc-cache.exe:成功
      “完成”。

    我认为您需要在安装Octave或向系统添加新字体时运行此脚本。我不明白为什么这些信息没有以清晰易懂的方式包含在Octave文档中。