I think that is correct... Here is what the final result should look like:
http://www.datawrangling.com/media/images/first_16.png If the dimensions for the sample faces don't work out to ( 361 x 361 ) in the end, then you are likely to be missing a transpose somewhere. Also, be aware that the scipy linalg.eig by default returns a vector of eigenvalues and a matrix, but the Matlab eig(), returns 2 matrices ( the eigenvalues are multiplied by an identity matrix to get a diagonal matrix). You can check out the mathesaurus reference sheet for help translating the example into python, but hopefully this will point you in the right direction: see: http://www.mathworks.com/access/helpdesk/help/techdoc/ref/eig.html vs: >>> help(linalg.eig) > > Help on function eig in module scipy.linalg.decomp: > > eig(a, b=None, left=False, right=True, overwrite_a=False, > overwrite_b=False) > Solve ordinary and generalized eigenvalue problem > of a square matrix. > > Inputs: > > a -- An N x N matrix. > b -- An N x N matrix [default is identity(N)]. > left -- Return left eigenvectors [disabled]. > right -- Return right eigenvectors [enabled]. > overwrite_a, overwrite_b -- save space by overwriting the a and/or > b matrices (both False by default) > > Outputs: > > w -- eigenvalues [left==right==False]. > w,vr -- w and right eigenvectors [left==False,right=True]. > w,vl -- w and left eigenvectors [left==True,right==False]. > w,vl,vr -- [left==right==True]. > > Definitions: > > a * vr[:,i] = w[i] * b * vr[:,i] > > a^H * vl[:,i] = conjugate(w[i]) * b^H * vl[:,i] > > where a^H denotes transpose(conjugate(a)). > On Sat, Mar 1, 2008 at 12:41 AM, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > > > On Mar 1, 12:57 am, "Peter Skomoroch" wrote: > I think > > > matlab example should be easy to translate to scipy/matplotlib using > the > > > montage function: > > > > > load faces.mat > > > %Form covariance matrix > > > C=cov(faces'); > > > %build eigenvectors and eigenvalues > > > [E,D] = eig(C); > > > hi Peter, > nice code..ran the examples.. > however couldn't follow the matlab code since i have no exposure to > matlab..was using numpy etc for calcs > could you confirm the layout for the face images data? i assumed that > the initial face matrix should be > faces=a numpy matrix with N rows ie N=numofimages > > row1=image1pixels as a sequence > row2=image2pixels as a sequence > ... > rowN=imageNpixels as a sequence > > > and covariancematrix=faces*faces_transpose > > is this the right way? > thanks > _______________________________________________ > Numpy-discussion mailing list > Numpy-discussion@scipy.org > http://projects.scipy.org/mailman/listinfo/numpy-discussion > -- Peter N. Skomoroch [EMAIL PROTECTED] http://www.datawrangling.com
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion