www.gusucode.com > matlab编写的一个拟合曲面的工具箱源码程序 > 3d_fitting/main.m
function ff=main(x,p,y,q,z,xx,yy) % x y z 坐标向量 长度要一样 % p ,q 为拟合函数中x,y 的系数 % xx yy 为 需要拟合的数据 给出(x,y) 坐标 求z A=leftmatrix (x,p,y,q); % A*a_n=B B=rightmatrix(x,p,y,q,z); %a_n=inv(A)*B; a_n=A\B; % 求a_n inv(A)*B 效果不好 (存疑) for i=1 : length(a_n) % 把长为p*q 的 a_n 列向量 转还 成p x q 的 aa 矩阵 ii=quotient(i-1,q)+1; % quotient求商 jj=mod(i-1,q)+1; aa(ii,jj)=a_n(i,1); end ff=0; % ff 是 xx,yy 带入所拟合的函数 求出 z for i=1 : p % 函数为 aa(i,j)*x^i*y^j (i=0...p ,j=0...q) for j=1 : q % aa 为系数 p x q 的矩阵 ff=ff+aa(i,j) * xx^(i-1) * yy^(j-1); end end