"John D'Errico" <email@example.com> wrote in message <firstname.lastname@example.org>... > dofour <email@example.com> wrote in message > <16976388.1204166901909.JavaMail.firstname.lastname@example.org>... > > Matlab gives the eigenvectors with norm 1, I want the first eigenvector to > be [1 1 1]. I don't know how to it from Matlab's eigenvectors > > > > Thanks > > Again, you can't ensure that an eigenvector will be > some specific vector, because in general, you can't > ensure that that vector is an eigenvector. You can't > just decide to pick some vector as an eigenvector, > at least not unless your matrix has a specific > property, like all of its eigenvalues are equal. And > in that case, ANY set of orthogonal vectors will > suffice. > > Do you know that [1 1 1] is an eigenvector? If so, > then it will be scaled to have norm 1. So just rescale > the vector. WTP? > > John
Hi guys, I'm also looking at this problem. To answer you question John, yes I know that 1p is an Eigenvector of A. Let A be a matrix which has sum of all rows = 0, then 1p (where p=dim(a)) is an eigenvector of A. For Example let A = [0 0 0; -1 1 0; -1 0 1]. the comand [V,D]=eig(A) returns the following eigenvectors: V = [0 0 .5774; 1 0 .5774; 0 1 .5774], which is correct but as posted in the thread it is not normalized to 1. The request is that the eig() returns [0 0 1;1 0 1;0 1 1].