有时候,改变Matlab的图形渲染器(即负责绘制的后端)会有所帮助。选项包括 painters
、zbuffer
和 OpenGL
。
由于这是一个图形属性,您可以将其应用于特定的图形,例如:
set(gcf(), 'Renderer', 'painters')
或者更新默认图形属性(如果总是需要,可以将其放在您的用户特定的startup.m文件中):
set(0, 'Renderer', 'painters')
同样地,要获取当前的渲染器状态,使用 get
而不是 set
:
get(gcf(), 'Renderer')
不同的渲染器具有不同的性能特点(例如,如果支持,则
OpenGL
渲染器可以使用硬件加速),但也具有不同的怪癖(根据我的经验,在使用远程桌面登录时使用getframe()进行帧捕获会与某些渲染器配合使用,而不是全部)。虽然我不知道你的问题的确切原因,但它可能是这些奇怪怪癖之一,所以尝试更改渲染器。
从
渲染器属性文档中:
用于屏幕和打印的渲染方法。
选择用于呈现MATLAB图形的方法。 选项为:
painters
- MATLAB使用的原始呈现方法,当图中只包含简单或小型图形对象时更快。
zbuffer
- MATLAB绘制图形对象更快且更精确,因为它按像素对对象进行着色,并且MATLAB仅渲染场景中可见的那些像素(因此可以消除前到后排序错误)。请注意,如果MATLAB显示复杂场景,则此方法可能会消耗大量系统内存。
OpenGL
- OpenGL是一个渲染器,可在许多计算机系统上使用。此渲染器通常比painters或zbuffer更快,并且在某些情况下使MATLAB能够访问某些系统上可用的图形硬件。
painters
,zbuffer
,OpenGL
):http://www.mathworks.nl/help/techdoc/ref/figure_props.html - catchmeifyoutry