示例:X-Y 数据的平滑
使用
ksmooth、
medsmooth 和
supsmooth 函数对
x-y 数据进行平滑处理。使用
movavg 函数对数据进行平滑处理,方法是利用指定宽度的窗口取移动平均值。
1. 定义矩阵,第一列为 x 值,第二列为 y 值。
2. 按升序排序列 0。
ksmooth
ksmooth 使用带宽为 b 的高斯核,返回 vy 局部加权平均值的矢量;带宽可对平滑窗口进行控制。
通常将带宽 b 设置为 x 轴上数据点之间间隔的数倍,具体取决于所需的平滑度。带宽越大,结果曲线越平滑。
1. 将 b 设置为 X 最小与最大值之间的某个值。
2. 计算 ksmooth 函数。
3. 绘制 ksmooth 函数图像。
谨慎选择带宽非常重要。带宽过大将使整个数据集中的数据趋于平均化,导致细节的丧失。带宽过小则可能会在平滑后的数据中产生人造细节。尝试将上述 b 更改为 0.01 到 2 之间的数值以查看这些效果。
medsmooth
medsmooth 返回一个平滑矢量,它是通过将 vy 中的每个值用处于其中间的 n 个点的中值来替换而得到的。
平滑窗口自变量 n 必须为奇数。
1. 将 n 定义为奇数。
2. 计算 medsmooth 函数。
3. 绘制 medsmooth 函数图像。
supsmooth
supsmooth 不需要其他自变量。
1. 计算 supsmooth 函数。
将上述三组经平滑处理的数据与原始数据进行比较。
movavg
1. 设置窗口宽度。
窗口宽度越大,结果曲线越平滑。数据点数计算值为 100。
2. 计算 movavg 函数。
3. 绘制 movavg 函数图像。
根据原始数据的变化可确定,上述平滑函数中的某一个可能比其他的更适于生成所需平滑数据。