[Numpy-discussion] confusion about eigenvector

devnew@gmai... devnew@gmai...
Thu Feb 28 05:54:55 CST 2008



On Feb 28, 1:27 pm, "Matthieu Brucher"  wrote
> If your images are 4x3, your eigenvector must be 12 long.

hi
thanx for reply
i am using 4 images each of size 4X3
the covariance matrix  obtained from adjfaces*faces_trans is 4X4 in
size and that produces the evalues and eigenvectors given here
evalues,evect=eigh(covarmat)

i will give the data i used

facemat (ndarray from data of 4 images each4X3)
[[ 173.   87.   88.  163.  167.   72.   75.  159.  170.  101.   88.
165.]
 [ 158.  103.  115.  152.  138.   58.   81.  153.  126.   68.   73.
143.]
 [ 180.   87.  107.  180.  167.   65.   86.  182.  113.   41.   55.
143.]
 [ 155.  117.  128.  147.  147.   70.   93.  146.  153.   65.   93.
155.]]
avgvals
[ 166.5    98.5   109.5   160.5   154.75   66.25   83.75  160.
140.5
   68.75   77.25  151.5 ]

adjfaces=matrix(facemat-avgvals)
[[  6.5  -11.5  -21.5    2.5   12.25   5.75  -8.75  -1.    29.5
32.25
   10.75  13.5 ]
 [ -8.5    4.5    5.5   -8.5  -16.75  -8.25  -2.75  -7.   -14.5
-0.75
   -4.25  -8.5 ]
 [ 13.5  -11.5   -2.5   19.5   12.25  -1.25   2.25  22.   -27.5
-27.75
  -22.25  -8.5 ]
 [-11.5   18.5   18.5  -13.5   -7.75   3.75   9.25 -14.    12.5
-3.75
   15.75   3.5 ]]

faces_trans =adjfaces.transpose()
[[  6.5   -8.5   13.5  -11.5 ]
 [-11.5    4.5  -11.5   18.5 ]
 [-21.5    5.5   -2.5   18.5 ]
 [  2.5   -8.5   19.5  -13.5 ]
 [ 12.25 -16.75  12.25  -7.75]
 [  5.75  -8.25  -1.25   3.75]
 [ -8.75  -2.75   2.25   9.25]
 [ -1.    -7.    22.   -14.  ]
 [ 29.5  -14.5  -27.5   12.5 ]
 [ 32.25  -0.75 -27.75  -3.75]
 [ 10.75  -4.25 -22.25  15.75]
 [ 13.5   -8.5   -8.5    3.5 ]]
covarmat =adjfaces * faces_trans
[[ 3111.8125 -1080.4375 -1636.4375  -394.9375]
 [-1080.4375   901.3125  -114.6875   293.8125]
 [-1636.4375  -114.6875  3435.3125 -1684.1875]
 [ -394.9375   293.8125 -1684.1875  1785.3125]]

evalues,evectors=eigh(covarmat)
evalues
[ -1.85852801e-13   6.31143639e+02   3.31182765e+03   5.29077871e+03]
evectors
[[ 0.5        -0.06727772  0.6496399  -0.56871936]
 [ 0.5        -0.77317718 -0.37697426  0.10043632]
 [ 0.5         0.27108233  0.31014514  0.76179023]
 [ 0.5         0.56937257 -0.58281078 -0.29350719]]
newevectmatrix
[[-0.56871936  0.6496399  -0.06727772  0.5       ]
 [ 0.10043632 -0.37697426 -0.77317718  0.5       ]
 [ 0.76179023  0.31014514  0.27108233  0.5       ]
 [-0.29350719 -0.58281078  0.56937257  0.5       ]]

i am not getting the eigenvector of length 12 as you said
pls tell me if i am doing sthing wrong
D


More information about the Numpy-discussion mailing list