没有得到正确的 EigenValue/EigenVector (eigenVV)

Not getting the correct EigenValue/EigenVector (eigenVV)

我正在尝试弄清楚如何使用 eigenVV,但到目前为止还没有成功。以下是我的代码,你们中的任何人都可以指出我做错了什么吗?谢谢

CvMat* A2;
A2 = cvCreateMat(3, 3, CV_32FC1);
cvmSet(A2, 0, 0, 1);
cvmSet(A2, 0, 1, 3);
cvmSet(A2, 0, 2, -3);
cvmSet(A2, 1, 0, -3);
cvmSet(A2, 1, 1, 7);
cvmSet(A2, 1, 2, -3);
cvmSet(A2, 2, 0, -6);
cvmSet(A2, 2, 1, 6);
cvmSet(A2, 2, 1, -2);

CvMat* transp_A2;
CvMat* ATA2;
CvMat* eigenVal2;
CvMat* eigenVec2;

transp_A2 = cvCreateMat(3, 3, CV_32FC1);
ATA2 = cvCreateMat(3, 3, CV_32FC1);
eigenVal2 = cvCreateMat(3, 1, CV_32FC1);
eigenVec2 = cvCreateMat(3, 3, CV_32FC1);

cvTranspose(A2, transp_A2);
cvMatMul(transp_A2, A2, ATA2);
cvEigenVV(ATA2, eigenVec2, eigenVal2);

编辑: 这是 eigenVec2 变量的输出

-0.236854,0.862897,-0.446442,

0.969565,0.239264,-0.0519332,

-0.0620046,0.445154,0.893304,

我想使用 EigenVector EigenValue 创建投影矩阵并将其与我拥有的投影矩阵进行比较。当它与我的答案不匹配时,我认为我的答案是错误的。但我发现生成的投影矩阵并不完全相同。它因比例因子而异。所以我使用eigenvv的方式是正确的。