clc RGB=imread('buzz.jpg'); gray=rgb2gray(RGB); A=im2double(gray); [U,S,V]=svd(A); sz=size(A); Approx=zeros(sz); r=50 for i=1:r u=U(:,i); s=S(i,i); v=V(:,i); Approx=Approx+s*u*v'; end Approx; subplot(1,2,1),imshow(A),title('original'); subplot(1,2,2),imshow(Approx),title(['low rank r=',num2str(r)]);