有时,它可以帮助更改 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 能够访问某些系统上可用的图形硬件。