#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Tue Mar 2 19:08:12 2021 """ import matplotlib.pyplot as plt import matplotlib as mpl import numpy as np import scipy.io Clown=scipy.io.loadmat('clowndata.mat') X=Clown['X'] map=Clown['map'] cm = mpl.colors.ListedColormap(map) plt.figure(1) plt.imshow(X,cmap=cm) plt.axis('off') plt.show() U,S,VT=np.linalg.svd(X,full_matrices=0) # Look at the singular values plt.figure(2) t=np.arange(1,201) plt.plot(t,S) # We can consider the plot of the log: plt.figure(3) plt.plot(t,np.log(S)) N=50 PartialRecon=U[:,1:N+1] @ np.diag(S[:N]) @ VT[1:N+1,:] plt.figure(4) plt.imshow(PartialRecon,cmap=cm) plt.axis('off') plt.show()