PeakCluster是Lu优化库中的一个函数,该函数利用数据曲线尖峰形状和位置进行聚类分析。
例子:2021 年高教社杯全国大学生数学建模竞赛 E题 中药材的鉴别 问题1:根据附件 1 中几种药材的中红外光谱数据,研究不同种类药材的特征和差异性,并鉴别药材的种类。
Lu脚本代码:
!!!using["luopt","math","win","sys"];
bf(x : i, static, kk : Array, row, column, ia, ss, iamax)= //按类别绘制数据曲线
{
cwClearData(),
i=-1, (++i<row).while{
which{kk%(iamax+1) : if{ia[i,0]==kk%(iamax+1), cwAddCurve{ss, Array(i : all).reshape(), column}},
cwAddCurve{ss, Array(i : all).reshape(), column}}
},
kk++
};
下一个类别(m,x :: next)= which{m==0 : next; m==1 : [next=next+x]; m==2 : [next=next-x]; m==3 : [next=x]; cwSetExeMsg()}; //修改模块变量next并刷新ChartWnd窗口的函数
init(x : i, j, k, ii, f, s, A1 : Array, row, column, ia, ss