% by lyqmath
clc; clear all; close all;
x=[4 7; 8 7; 12 7; 16 7; 4 28; 8 28; 12 28; 16 28; 4 60; 8 60];
z=[34,5,12,34,27,49,40,45,23,67]';
fun = @(beta, x) beta(1)*x(:, 1) + beta(2)*x(:, 2) + beta(3);
beta0 = [1; 1; 1];
beta = nlinfit(x,z,fun,beta0);
[xt, yt] = meshgrid(linspace(min(x(:, 1)), max(x(:, 1))), linspace(min(x(:, 2)), max(x(:, 2))));
zt = fun(beta, [xt(:) yt(:)]);
zt = reshape(zt, size(xt, 1), size(xt, 2));
figure; hold on; box on; view(3);
plot3(x(:, 1), x(:, 2), z, 'r+');
mesh(xt, yt, zt);
title(sprintf('by lyqmath 拟合结果:z = %.3f*x + %.3f*y + %.3f', beta(1), beta(2), beta(3)), 'fontweight', 'bold', 'color', 'r');