裁减修饰 peaks 的用法挺有意思,用 NaN 来‘掏空’一块区域,做数据缺失的模拟或者突出显示都蛮合适的。你只要用p(30:40,20:30)=nan*p(30:40,20:30)这一行,就能把 peaks 图里的某个小方块“挖掉”。直接surf(p),那块区域就变成了一个的空洞。嗯,挺适合做异常值可视化。

用了peaks之后你会发现,默认图看起来太整了,有时候不太好区分重点。像这种裁减方式就比较灵活,尤其是在演示数据缺失、噪点、或者地形图坑洼的时候,直观。

如果你还不太熟悉surf的绘图原理,可以看看《MATLAB SURF 算法实现》,里面讲得还挺细的。再搭配Fill Missing Data in Time Series Using NaN》这篇文章,就能比较清楚地理解 NaN 在可视化里的实际作用了。

另外,想要搞动态效果的也可以试试《Matlab 动画制作示例》,结合peaks用起来也挺带感。

如果你在做三维图时总觉得图太“满”,可以考虑用这种裁减法来做视觉引导。效果还挺自然的,重点区域一眼就能看出来。

用之前注意下:NaN 赋值操作不要太大范围,不然整个图都空了就没意义了。选对区域,小范围突出效果最好。