% Matlab diary from CS 240A, Tuesday, February 11, 2014 > what M-files in the current directory /Users/gilbert/Documents/CS240aWinter2014/Matlab/spectral clustereg eigsvdgui gploth MAT-files in the current directory /Users/gilbert/Documents/CS240aWinter2014/Matlab/spectral clusters lanczos laplacians meshes > load meshes > whos Name Size Bytes Class Attributes Airfoil 4253x4253 495328 double sparse Amap 4253x1 34024 double Axy 4253x2 68048 double Eppstein 547x547 63248 double sparse Exy 547x2 8752 double Rmat 1024x1024 349096 double sparse Rmat64 64x64 9096 double sparse Rxy 1024x2 16384 double Rxy64 64x2 1024 double Smallmesh 136x136 14600 double sparse Sxy 136x2 2176 double Tapir 1024x1024 115656 double sparse Txy 1024x2 16384 double > gplotg(Airfoil,Axy) > specpart(Airfoil,Axy);shg > clear > load laplacians > whos Name Size Bytes Class Attributes L 4x4 128 double T 20x20 3200 double > T > spy(T) > sparse(T) > help eig EIG Eigenvalues and eigenvectors. ... [V,D] = EIG(X) produces a diagonal matrix D of eigenvalues and a full matrix V whose columns are the corresponding eigenvectors so that X*V = V*D. ... > [W,D] = eig(T); > whos Name Size Bytes Class Attributes D 20x20 3200 double L 4x4 128 double T 20x20 3200 double W 20x20 3200 double ans 20x20 1096 double sparse > D > I = eye(20) > W'*W - I ans = 1.0e-14 * Columns 1 through 9 -0.0666 -0.0819 -0.0208 0.0042 -0.0069 -0.0069 -0.0139 0.0062 0.0069 -0.0819 -0.0777 -0.0056 0.0083 0.0042 0.0014 -0.0153 0.0236 0.0167 -0.0208 -0.0056 0 -0.0194 0.0069 0.0083 0.0069 -0.0139 0.0097 ... > norm(W'*W-I) ans = 3.1714e-15 > norm(T*W-W*D) ans = 2.9080e-15 > diag(D) ans = -0.0000 0.0246 0.0979 0.2180 0.3820 0.5858 0.8244 1.0920 1.3820 1.6871 2.0000 2.3129 2.6180 2.9080 3.1756 3.4142 3.6180 3.7820 3.9021 3.9754 > D(1,1) ans = -5.2834e-16 > W W = Columns 1 through 9 0.2236 -0.3153 0.3123 -0.3075 -0.3008 -0.2922 -0.2818 -0.2696 -0.2558 0.2236 -0.3075 0.2818 -0.2405 -0.1859 -0.1210 -0.0495 0.0248 0.0977 0.2236 -0.2922 0.2236 -0.1210 0.0000 0.1210 0.2236 0.2922 0.3162 0.2236 -0.2696 0.1436 0.0248 0.1859 0.2922 0.3123 0.2405 0.0977 ... > plot(W(:,2),'o-');hold on; shg > plot(W(:,3),'ko-'); shg > plot(W(:,4),'ro-'); shg > plot(W(:,20),'go-'); shg > load meshes > whos Name Size Bytes Class Attributes Airfoil 4253x4253 495328 double sparse Amap 4253x1 34024 double Axy 4253x2 68048 double D 20x20 3200 double Eppstein 547x547 63248 double sparse Exy 547x2 8752 double I 20x20 3200 double L 4x4 128 double Rmat 1024x1024 349096 double sparse Rmat64 64x64 9096 double sparse Rxy 1024x2 16384 double Rxy64 64x2 1024 double Smallmesh 136x136 14600 double sparse Sxy 136x2 2176 double T 20x20 3200 double Tapir 1024x1024 115656 double sparse Txy 1024x2 16384 double W 20x20 3200 double ans 1x1 8 double > help fiedler FIEDLER : Fiedler vector of a graph. ... [x,lambda] = fiedler(G,k) returns the k smallest nonzero eigenvalues and their eigenvectors. ... > uv = fiedler(Airfoil,2); > size(uv) ans = 4253 2 > uv uv = 0.0154 0.0071 0.0163 0.0058 0.0172 0.0038 0.0148 -0.0170 0.0182 -0.0017 ... 0.0113 -0.0229 -0.0078 -0.0186 > gplotg(Airfoil,Axy) > gplotg(Airfoil,uv) > clear > load laplacians > whos Name Size Bytes Class Attributes L 4x4 128 double T 20x20 3200 double > L L = 1 0 -1 0 0 2 -1 -1 -1 -1 3 -1 0 -1 -1 2 > x = [1 -1 1 -1]' > x'*L*x ans = 8 > load meshes > specpart(Airfoil,Axy);shg > clear > load clusters > whos Name Size Bytes Class Attributes A 50x50 9400 double sparse S 4x4 72 double sparse ans 100x1 800 double ignore 50x1 400 double lambda 2x1 16 double p 1x50 400 double pp 50x1 400 double uv 50x2 800 double xy 50x2 800 double > A A = (1,1) 9 (4,1) -1 (6,1) -1 (7,1) -1 ... (42,50) -1 (44,50) -1 (49,50) -1 (50,50) 13 > gploth(A,xy,1:50) > [uv,lambda]=fiedler(A,2); > gploth(A,uv,1:50)