gpt4 book ai didi

Matlab:曲面图不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:05 25 4
gpt4 key购买 nike

我有一个我正在尝试做的表面图。 x是11元向量,y是300元向量,z是300*11元矩阵。

当我尝试这样绘制它时:

surf(x y z)

曲面图未显示。坐标轴在那里,但没有曲面图。 blank surface plot

但是,如果出于某种原因我对矩阵的一个子集绘制了这样的曲面图:

surf(x y(1:31) z(1:31,:))

然后它起作用了,情节出现了。 working surface plot

一旦我将括号中的数字增加到 32,它就会停止工作。如果我将范围从 2:32 更改为有效,那么它与数据无关,只是矩阵的大小。

这是怎么回事?我如何解决它?

P.S 我会附上代码,但它有点长且复杂,并且导入 .txt 文件以加载到 x 和 y 向量中。

最佳答案

有时,它可以帮助更改 Matlab 的图形渲染器,它基本上是执行绘图的后端。选项有 painterszbufferOpenGL

因为它是一个图形属性,你可以将它应用到一个特定的图形,例如:

set(gcf(), 'Renderer', 'painters')

或更新 default figure properties (如果总是需要,你可以把它放在你的 user-specific startup.m 中):

set(0, 'Renderer', 'painters')

同样,要获取当前的渲染器状态,请使用get 而不是set:

get(gcf(), 'Renderer')

不同的渲染器具有不同的性能属性(例如,OpenGL 渲染器可以使用硬件加速,如果支持),但也有不同的怪癖(根据我的经验,使用 getframe() 的帧捕获在使用时与某些渲染器一起工作远程桌面登录,但不是全部)。虽然我不知道您的问题的确切原因,但它可能是这些奇怪的怪癖之一,所以请尝试更改渲染器。

来自Renderer property documentation :

Rendering method used for screen and printing. Selects the method used to render MATLAB graphics. The choices are:

painters — The original rendering method used by MATLAB is faster when the figure contains only simple or small graphics objects.

zbuffer — MATLAB draws graphics objects faster and more accurately because it colors objects on a per-pixel basis and MATLAB renders only those pixels that are visible in the scene (thus eliminating front-to-back sorting errors). Note that this method can consume a lot of system memory if MATLAB is displaying a complex scene.

OpenGL — OpenGL is a renderer that is available on many computer systems. This renderer is generally faster than painters or zbuffer and in some cases enables MATLAB to access graphics hardware that is available on some systems.

关于Matlab:曲面图不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11615921/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com