Edd*_*ddy 5 matlab plot geometry-surface
我有一个表面情节,我正在尝试做.x是11元素向量,ya 300元素向量和za 300*11元素矩阵.
当我尝试这样绘制时:
surf(x y z)
Run Code Online (Sandbox Code Playgroud)
表面图未显示.轴在那里,但没有表面图.
但是,如果由于某种原因我做了矩阵子集的表面图,如下所示:
surf(x y(1:31) z(1:31,:))
Run Code Online (Sandbox Code Playgroud)
然后它工作,情节显示.
一旦我将括号中的数字增加到32,它就会停止工作.如果我从2:32更改范围然后它可以工作,所以它与数据只是矩阵的大小无关.
这里发生了什么?我如何解决它?
PS我会附加代码,但它有点长且复杂,并导入.txt文件加载到x和y向量中.
有时,它可以帮助改变Matlab的图形渲染器,它基本上是执行绘图的后端.选项包括painters
,zbuffer
,和OpenGL
.
由于它是一个数字属性,您可以将其应用于特定的数字,例如:
set(gcf(), 'Renderer', 'painters')
Run Code Online (Sandbox Code Playgroud)
或者更新默认的图形属性(如果总是需要,可以将它放在用户特定的startup.m中):
set(0, 'Renderer', 'painters')
Run Code Online (Sandbox Code Playgroud)
同样,要获取当前呈现器状态,请使用get
而不是set
:
get(gcf(), 'Renderer')
Run Code Online (Sandbox Code Playgroud)
不同的渲染器具有不同的性能属性(例如,OpenGL
渲染器可以使用硬件加速,如果支持),但也有不同的怪癖(根据我的经验,使用getframe()的帧捕获在使用远程桌面登录时与一些渲染器一起使用,但不是全部).虽然我不知道你的问题的确切原因,但它可能是这些奇怪的怪癖之一,所以尝试更改渲染器.
用于屏幕和打印的渲染方法.选择用于渲染MATLAB图形的方法.选择是:
painters
- 当图形仅包含简单或小图形对象时,MATLAB使用的原始渲染方法更快.
zbuffer
- MATLAB可以更快,更准确地绘制图形对象,因为它以每个像素为基础对对象进行着色,而MATLAB仅渲染场景中可见的像素(从而消除了从前到后的排序错误).请注意,如果MATLAB显示复杂场景,则此方法会占用大量系统内存.
OpenGL
- OpenGL是一种渲染器,可在许多计算机系统上使用.此渲染器通常比画家或zbuffer更快,并且在某些情况下使MATLAB能够访问某些系统上可用的图形硬件.
归档时间: |
|
查看次数: |
9500 次 |
最近记录: |