Question about SVD(Singular Value Decomposition) function from MRPT

Hi, I'm using the matrix library from MRPT and I have a question about the SVD function.
SVD library from MRPT can generate excellent result as Maltab, but it creates different sign in the eigenvector part.

For example, I have a matrix A as follows,

A = [ 1 3 4
2 5 6
2 4 6]

Then the svd result from Matlab(u,s,v) are

u =

-0.4206 -0.0964 -0.9021
-0.6651 -0.6435 0.3788
-0.6170 0.7594 0.2065

s =

12.1072 0 0
0 0.5782 0
0 0 0.2857

v =

-0.2465 0.2342 0.9404
-0.5828 -0.8112 0.0492
-0.7744 0.5359 -0.3365

But svd result from MRPT(U, S, V) are
U =

-0.4206 0.9021 0.0964
-0.6651 -0.3788 0.6435
-0.6170 -0.2065 -0.7594

S =

12.1072 0.2857 0.5782

V =

-0.2465 -0.9404 -0.2342
-0.5828 -0.0492 0.8112
-0.7744 0.3365 -0.5359

From this example, the signs of column 2 and 3 from U and V are different with u and v.
But in certain case, SVD function from MRPT can generate same result as Matlab.
It quite confusing. So is there anyone can teach me
how to make the svd result from MRPT same as the Maltab one??

Thank you very much~

Syndicate content

The Mobile Robot Programming Toolkit (MRPT) initiative (C) 2012