clear close all load('lin_regression.mat'); slopes = -5:0.25:5; intercepts = -30:1:30; error_surf = zeros(length(slopes), length(intercepts)); for i = 1:length(slopes) for j = 1:length(intercepts) error_surf(i,j) = lsqError([slopes(i), intercepts(j)], x, y); end end % plot the error surface figure() [N,M] = meshgrid(intercepts, slopes); s = surface(M,N,error_surf); xlabel('slope', 'rotation', 7.5) ylabel('intercept', 'rotation', -22.5) zlabel('error') set(gca,'xtick', (-5:2.5:5)) grid on view(3) set(gcf, 'paperunits', 'centimeters', 'papersize', [15, 15], ... 'paperposition', [0., 0., 15, 15]) saveas(gcf, 'error_surface', 'pdf')