如图,数据得到的poly结果是不规则的,无法处理,怎么平滑图像呢?
使用polyfit函数
用法:polyfit(x,y,n)
x是横轴数据,y是纵轴数据,n是拟合的次数,n越高计算量越大
x,y都有,如何确定n的值呢?
答:借助cftool工具箱进行模拟拟合
使用步骤:
1.在控制台输入cftool打开工具箱
2.修改拟合参数
X,Y在下拉框中选择工作区内的变量
默认使用Polynomial
Degree中是拟合的次数,修改Degree就可以看到下方的蓝色拟合曲线发生变化
3.如何判断拟合的效果呢?
答:通过相关系数来判断拟合的效果,R-square就是相关系数,越接近1就表明拟合的越好
确定完n的值后,通过代码进行polyfit
allSheetsDiffersSort = sort(allSheetsDiffers,2,'ascend');X = 1: 1 :759;plot(X,allSheetsDiffersSort,'b');hold on;smooth = polyfit(X,allSheetsDiffersSort,8);smoothResult = polyval(smooth,X,1);plot(X,smoothResult,'r')
Tips:如果执行代码出现:
确定数据没问题后,在控制台输入:
再重新运行就好了。
拟合结果:
感谢收阅