0

我在家里写了一些代码来绘制一些 3D 数据。它工作得很好。现在我在办公室运行相同的代码,我得到了一些奇怪的错误。似乎每个插入的数据点都有一个标签。

但这只发生在一半的地块上。左图显示了真实数据,右图只是这些数据的平滑拟合。左边的有错误,右边的没有。

我在同事的机器上运行了代码,它也运行良好。所以我把干净的图形文件保存在他的机器上,并试图在我的电脑上打开它们。还是一样的bug。所以这不是代码,但似乎是一些奇怪的显示错误。以前有人见过吗? 图中的数字

figure(1);
s1=gca;
surf(t_matrix,f_matrix,alpha_matrix)
colorbar
figure(2);
s2=gca;
surf(t_matrix2,f_matrix2,alpha_matrix2)
colorbar

就是这段代码。如果我调试,数字会出现在第一次调用 colorbar 之后。但不是在第二种情况下。我在家里的 Matlab 版本是 2013a,但在办公室和我同事的版本都是 2012b。

4

2 回答 2

5

这似乎是一个错误。MATLAB Answers 上有一个线程。

Jan Simon 接受的答案是

这可能是由 OpenGL 驱动程序引起的。您是否安装了显卡的最新驱动程序?

解决方法可能是:

设置(gcf,“渲染器”,“zbuffer”);

或者如果 OpenGL 看起来更好:

opengl 软件

也许:

opengl 硬件

在文档中查找“OpenGL”以找到一堆开关来考虑一堆驱动程序错误。

于 2013-05-28T14:59:51.673 回答
0

实际上 zbuffer 渲染器工作正常,但在某些情况下还不够。

我经常使用设置为 0.5 的 gca 属性 facealpha 来处理透明曲面图,以便将等高线图叠加到它上面。面或边的 alpha 设置(可能是其他一些绘图属性)只能在 Opengl 渲染器中正确显示。zbuffer 无法描绘透明表面图。

当我最近切换到 Win8 时,主要问题首先引起了我的注意。血腥 $Bill 'HamsterWhy' 门。

来自 Mathworks 的补丁将不胜感激。

于 2015-01-07T19:45:59.527 回答