功能: 多维曲线平滑

格式: 
DataSmoothLine(line)
DataSmoothLine(line, r)
DataSmoothLine(line, r, n)
DataSmoothLine(line, r, n, m)

line: 为ptSize * dim的矩阵变量, ptSize表示曲线点数量, dim表示曲线维度
r   : 数值, Whittaker算法平滑度权重与逼近数据权重比值, 默认为1.
n   : 整数数值, 均匀点数, 默认为line的行数
m   : 整数数值, 平滑次数, 此参数越大, 越平滑, 默认为1.

说明:
1. 函数主要对多维曲线位置进行平滑
2. 函数内部使用Whittaker平滑算法
3. line的每一行代表一个点位
4. line里点存储顺序需要有序,且点距尽量均匀。
5. 在保证4的情况下,n参数尽量在line里点个数值周围取值。

原理:
1. {Whittaker数据平滑算法<http://www.mathsword.com/whittaker-smoother/>}

例子:
//1. 这里假设有曲线src
x   = 0:100;
x   = x';
n   = size(x);
n   = n(1);
r   = rand(6, n, 1);
y   = (10 - r) * sin(x/10);
src = [x, y];
r   = {CreateRoate<矩阵运算\CreateRoate>}(0.5);
src = {TransRowPt<矩阵运算\TransRowPt>}(src, r);

//2. 对曲线src进行平滑
dst = DataSmoothLine(src,16);

//3. 绘图对比曲线平滑前后效果
x0  = src(,1);
y0  = src(,2);
x1  = dst(,1);
y1  = dst(,2);
{Plot<矩阵运算\Plot>}(x0,y0,x1,y1);