% Image compression example. load clown.mat A= X; colormap('gray') [U,S,V] = svd(A); [m n] = size(S); Anew= zeros(m,n); for k=1:10, Anew = Anew + S(k,k)*kron(U(:,k), V(:,k).'); end Anew1= zeros(m,n); for k=1:30, Anew1 = Anew1 + S(k,k)*kron(U(:,k), V(:,k).'); end Anew2= zeros(m,n); for k=1:80, Anew2 = Anew2 + S(k,k)*kron(U(:,k), V(:,k).'); end %check the two norm error. norm(A-Anew)/norm(A) norm(A-Anew1)/norm(A) norm(A-Anew2)/norm(A) subplot(2,2,1) image(A) subplot(2,2,2); image(Anew) subplot(2,2,3) image(Anew1) subplot(2,2,4) image(Anew2)