基本的に描画を実行するバックエンドである、Matlab の Figure レンダラーを変更すると役立つ場合があります。オプションはpainters、zbuffer、およびOpenGLです。
これは図のプロパティであるため、特定の図に適用できます。たとえば、次のようになります。
set(gcf(), 'Renderer', 'painters')
または、デフォルトの Figure プロパティを更新します (常に必要な場合は、ユーザー固有の startup.mに入れることができます)。
set(0, 'Renderer', 'painters')
同様に、レンダラーの現在の状態を取得するには、get代わりにset次を使用します。
get(gcf(), 'Renderer')
レンダラーが異なれば、パフォーマンス プロパティOpenGLも異なります (サポートされている場合、レンダラーはハードウェア アクセラレーションを使用できます) だけでなく、癖も異なります (私の経験では、getframe() を使用したフレーム キャプチャは、リモート デスクトップ ログインを使用しているときに一部のレンダラーで動作しますが、すべてではありません)。問題の正確な理由はわかりませんが、これらの奇妙な癖の 1 つかもしれないので、レンダラーを変更してみてください。
Renderer プロパティのドキュメントから:
スクリーンと印刷に使用されるレンダリング方法。MATLAB グラフィックスのレンダリングに使用する方法を選択します。選択肢は次のとおりです。
painters— MATLAB が使用する元のレンダリング方法は、Figure に単純または小さなグラフィックス オブジェクトのみが含まれている場合に高速です。
zbuffer— MATLAB はグラフィックス オブジェクトをより高速かつ正確に描画します。これは、オブジェクトをピクセル単位で色付けし、MATLAB がシーンで表示されているピクセルのみをレンダリングするためです (したがって、前後の並べ替えエラーが排除されます)。MATLAB が複雑なシーンを表示している場合、このメソッドは大量のシステム メモリを消費する可能性があることに注意してください。
OpenGL— OpenGL は、多くのコンピューター システムで使用できるレンダラーです。このレンダラーは通常、ペインタや zbuffer よりも高速であり、場合によっては、MATLAB が一部のシステムで利用可能なグラフィックス ハードウェアにアクセスできるようになります。