📄 read me.txt
字号:
这里提供的matlab函数有四个,分别是移动窗口最小二乘多项式平滑(sgsmooth.m),移动窗口中位数平滑(median_smooth.m),粗糙惩罚平滑(rpsmooth.m)以及kernel平滑(kernel.m)。
移动窗口最小二乘多项式平滑采用的格式是:
y=sgsmooth(x,width,order)
x是数据:光谱或者是色谱,而且输入形式必须为一个向量,width是平滑时选择的窗口宽度,order是多项式拟和的次数。需要注意的是多项式拟和的次数order必须小于width,而且width必须为一个奇数,否则提示error。
移动窗口中位数平滑的格式:
y=median_smooth(x,width)
x是光谱或者色谱数据,同样输入必须为一个向量,width是移动平滑窗口宽度。
粗糙惩罚平滑格式:
f=rpsmooth(x,nambda),x为光谱或者色谱数据,也必须为一个向量。nambda为惩罚参数,可以为一个数,也可以为一个含有两个数的向量,nambda向量中的元素但是不能超过2,因为如果对粗糙惩罚有所认识,可以直接输入一个数进行计算,而如果对参数选择没有把握,则可以以[up low]的向量形式输入两个值进行计算。nambda不能为0。如果nambda为0,无平滑效果。如果没有选择nambda值,默认的是从1:100进行循环计算,步长为10。
需要注意的是,在matlab中产生一个矩阵Q和R(详见算法文档或者分析化学手册第十分册)时间花费比较大,如果数据点大于1000,建议分段计算,我计算了一下,用1000个数据点进行计算,时间花费是70~80s。
kernel平滑格式:
smooth_d=kernel(t,x,h,fun)
x同样是一个光谱或者色谱数据向量。t为光谱中的波长点或者色谱中的保留时间点,如果没有这些数据的,可以用点数来代替,比如x数据点有500个,可用其索引1,2,3,…等来组成一个向量t。h为带宽,必须为正数。fun为kern函数,在matlab文件中提供了四个函数:均匀函数,二次函数,一阶导数估计和二阶导数估计,详细请见算法文档,但是一阶导数和二阶导数估计在平滑中没有用到,因此没有给予介绍。分别用'uni','qua','fde','sde'表示。默认的是采用二次函数平滑。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -