[N,p]=size(data) %得出文件数据的矩阵大小,N行p列
Nt=50 %令 Nt为 50
DTr=data(1:Nt,:)%将数据的1到Nt行放入DTr矩阵
DTe=data(Nt+1:end,:)%将数据的Nt+1到最后一行全部放入DTr矩阵
xTr=DTr(:,1:p-1) %将DTr的第1到p-1列放入矩阵xTr
yTr=DTr(:,p) %yTr等于DTr的最后一列
xTe=DTe(:,1:p-1)%将DTe的第1到p-1列拿森放入矩阵xTe
yTe=DTe(:,p) %yTe等于DTe的最后一列
x=data(:,1:p-1)%将原数据第1到p-1列放入矩阵x
y=data(:,p) %将原数据最后一列放入矩阵y
[xN,xs]=mapminmax(x')%对x归一化
xN=xN' %将上一行输出xN转置
[yN,ys]=mapminmax(y') %归一化
yN=yN'%转置
xTrN=xN(1:Nt,:) %xTrN等于xN的前50行
yTrN=yN(1:Nt,:) %yTrN等于yN的前50行
model=svmtrain(yTrN,xTrN,'-s3 -t 2 -c 300 -g 4 -p 0.05') %用yTrN和xTrN转置矩阵训练SVM分类器,后面的一串参数在matlab里输入help svmtrain 就会有解释
[pdata]=svmpredict(yN,xN,model) %用训练好雀敏并的svm模型对xN预测,得到的结果与yN对比,得到正确率
pdata= mapminmax('reverse',pdata',ys) %对pdata反归一化得到你画图要用的含碳量预测值
pdata= pdata' %转置
m=[1:N] %1到N数列,用于画图横坐标表示测试次数
plot(m,data(:,p)','k-',m,pdata,'r--') %画图
xlabel('测试次数/次') %图例
ylabel('飞灰含碳量/%')
legend('测量值','预测值')
w=(data(:,p)-pdata)./data(:,p)%计算预测与实际的偏差值
整个程序就是这样了。
mse是检验神经网络算法的误差分析。
1、首先按照下方图片中的代码进行编辑均方误差函数mse代码。
2、编辑完上面图片中的代码之后,继续根据下方图片中的代码进行编辑。
3、编辑完成之后,运行改代码就可以得到想要的均方误差了。
MATLAB是MATrix LABoratory(矩阵实验室)的缩写,是由美国MathWorks公司于20世纪80年代初推出的一套以矩阵计算为基睁虚础的、适合多学科、多种工作平台的功能强劲的大型软件。
MATLAB将科学计算、数据可视化、系统仿真和交互式程序设计功能集成在非常便于使用的环境中,具有编程效率高、用户使用方便、扩充能力强、移植性好等特点。经过MathWorks公司的不断完善,目前MATLAB已经发展成为国际上最优秀的高性能科学与工程计算软件之一。
MATLAB和MATHEMATICA、悉森燃MAPLE并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强春裂大功能集成在一个易于使用的视窗环境中。
为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
x=[807.885 822.301 843.889 873.601 882.456 866.085 839.726 816.664]y=[1294.459 1265.64 1258.251 1270.253 1302.33 1326.2 1331.356 1321.231]
z=[-4.878 -4.244 -4.073 -4.267 -4.495 -5.15 -5.514 -5.378]
%下面拟合的是ax+by+c=z
%你把几个点代入上式,写成关于abc的矩阵形式A*abc=B
%下面给出缺液A,B的表达式
A=[x',y',ones(size(x'))]
B=z'
abc=A\B
a=abc(1)
b=abc(2)
c=abc(3)
%至此,方程可写为a*x+b*y+c-z=0
%平面度的概念我不是很清楚,我是效皮链仿你的公式
F=(a*x'+b*y'+c-z'伏握物)/sqrt(a^2+b^2+1^2)
max(F)-min(F)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)