渲染大型MatLab图很慢

时间:2014-12-09 16:26:05

标签: performance matlab plot matlab-figure

我在Win 8.1上使用MatLab R2014B我有一个带有两个子图的数字。第一个子图的数据大约是700,000点;第二个是大约50,000点。当我以任何方式显示或操纵它(缩放,比如说)时,会有很长的时间滞后,最多约30秒。显然,我希望提高性能。这就是我所知道的:

  • 如果我把它分成4个图,每个图覆盖1/4的数据,性能很快。速度快4倍多。差异似乎是指数级的。
  • 一位同事(我认为运行R2014A)的机器速度要慢一些,但事实上这个数字显示的是接近实时的速度。

问题可能在于如何渲染人物。我运行了MatLab" opengl info"并报告Software标志为false。这应该意味着它使用了显示器的硬件渲染。

所以也许显示适配器设置得不对。我的机器(联想笔记本电脑)有两个显示适配器:Intel HD Graphics 3000和NVIDIA NVS 4200M。我不知道为什么有这两个或者是否有任何相关设置。

有关如何进行的任何想法?

4 个答案:

答案 0 :(得分:1)

自从R2014b使用新的图形引擎以来,已经发布了MATLAB版本,已知该图形引擎对于大型数据集来说速度极慢;例如,看看 http://www.mathworks.com/matlabcentral/newsreader/view_thread/337755

该解决方案与图形驱动程序等无关。返回MATLAB R2014a并保持不变。

答案 1 :(得分:0)

可能是您通过集成图形处理器(Intel HD Graphics 3000)而不是专用图形处理器(NVIDIA NVS 4200M)运行它。如果你的联想有"可切换的图形"启用后,您应该能够切换到NVIDIA,或检查您是否确实通过它进行渲染。右键单击任务栏中的电源管理器。如果您看到一个菜单项,其中显示"可切换的图形,"你可以把它改成你的NVIDIA。注意,您必须关闭MATLAB才能进行切换。

听起来像渲染配置导致的减速。在MATLAB中运行opengl info时,哪些设备列为"渲染器"?

答案 2 :(得分:0)

如果您不需要操作它(假设您只想要一个图像文件),您可以随时使用figure('Visible','Off')创建您的图形并保存它而不会在屏幕上显示该图形。

答案 3 :(得分:0)

我编写了一个函数plotECG,可以显示包含数百万个样本的图。它包括用于快速滚动和缩放的滑块。

如果您有多个时间序列并希望它们以同步方式显示,您可以一次性将它们作为矩阵传递并定义键“自动堆栈信号”,然后是一个字符串的单元格数组。信号的名称。然后,信号在同一轴上一个接一个地显示,相应的名称为YTickLabel。

https://de.mathworks.com/matlabcentral/fileexchange/59296