%最小二乘法的矩阵形式function[coe,str,preZ]=LMSMatrix()loaddata.mat;%dataX为n*(p-1),dataY为n*1,dataZ为n*(p-1)firstList=ones(size(dataY,1),1);newX=[firstListdataX];firstZ=ones(size(dataZ,1),1);newZ=[firstZdataZ];%在dataX的前面加上一列1transpositionNewX=newX';%X'tempX=transpositionNewX*newX;%X'Xifdet(tempX)~=0%XX'是非奇异的str='X“X是非奇异的,可以求逆!';invX=inv(tempX);%(XX')的逆coe=invX*transpositionNewX*dataY;%b=(X'X)逆X'Y%temp=tempX\transpositionNewX;%用A\b代替A的逆*b提高效率%coe=temp*dataY;elseifdet(tempX)==0str='X“X是奇异的,无法求逆!';coe=0;endend%预测数据preZ=newZ*coe;%y=xbstrcoepreZ