pinv - pseudoinverse
produces a matrix X of the same dimensions as A' such that:
A*X*A = A, X*A*X = X and both A*X and X*A are Hermitian .
The computation is based on SVD and any singular values lower than a tolerance are treated as zero: this tolerance is accessed by X=pinv(A,tol).
pinv function is based on the singular value decomposition (Scilab function svd).
A=rand(5,2)*rand(2,4); norm(A*pinv(A)*A-A,1)