matlab中,给定一个矩阵,矩阵的行号和列号分别为x,y值,对应行号列号的值为z值,怎么得出线性回归平面?

用regress
能具体点么?

第1个回答  推荐于2017-10-10
[x y]=meshgrid(1:size(z,1),1:size(z,2));%根据序号生成x,y矩阵
zz=z(:);xx=x(:);yy=y(:); %将矩阵转为向量

X = [ones(size(xx)) xx yy];
b = regress(zz,X);
%有regress拟合一个系数矩阵b,在回归意义下让zz = X*b
%实际上拟合平面方程是 z= b(1)+b(2)*x+b(3);

scatter3(xx,yy,zz); %画原来的数据点
hold on;
zfit = b(1) + b(2)*x + b(3)*y; %根据拟合参数,得到平面数据网格
mesh(x,y,zfit); %画数平面
xlabel('X');ylabel('Y');zlabel('Z');
hidden off;
hold off本回答被提问者和网友采纳