function Model = parametric_model(Disparity, gain) m = mean(Disparity')'; Disparity = Disparity - m*ones(1,size(Disparity,2)); [U,S,V] = svd(Disparity,0); U1 = U(:,1:gain); S1 = S(1:gain,1:gain); V1 = V(:,1:gain); Model = S1*V1'; % Verification statements. Remove when working. for i = 1:size(Model,1) E = U1*Model(:,i); E = reshape(E,sqrt(size(Disparity,1)),sqrt(size(Disparity,1))); figure(i) surf(E, 'EdgeColor', 'none') %colormap(gray); %view(0,-90) view(0,30) %rotate(img,[0,90],90) %viewmtx(0,90,60) %axis off axis equal axis square %axis equal axis vis3d %axis image axis fill end