平滑/过滤矩阵数据

时间:2016-08-31 07:22:08

标签: matlab matrix filter filtering

我有一个25x10矩阵,当我绘制它时会显示相当粗糙的表面。 我想过滤掉它以创建一个光滑的表面,为更精细的网格创建更多的数据点(但不是线性插值),我需要生成平滑表面的过滤数据作为开环的基础。任何人都可以推荐我一个好方法吗?结果现在看起来像这样:

surface 干杯

编辑:使用方法'cubic'的griddata看起来更像是期望的结果,但它仍然保留了太多的数据。下面的图像用立方体和期望的结果可视化结果。目标是在表面看不到更清晰的峰值。

Desired result

1 个答案:

答案 0 :(得分:1)

使用griddata在更精细的网格上插入数据。如果x,y和z是您的数据,您可以定义精细网格(xq,yq)并在该扩展上插入/外推您的数据。由于默认方法是“线性”,并且您希望使曲面轮廓更平滑,因此应指定另一种方法,例如“自然”。

[xq, yq] = meshgrid(0:20:6000, 0.2:0.01:1);
zq = griddata(x(:), y(:), z(:), xq, yq, 'natural');
surf(xq, yq, zq, 'EdgeColor', 'none')