View License

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video

Highlights from

5.0 | 1 rating Rate this file 19 Downloads (last 30 days) File Size: 7.12 KB File ID: #25453 Version: 1.5



Bruno Luong (view profile)


30 Sep 2009 (Updated )

Factorize a matrix for pseudo-inverse calculation purpose

| Watch this File

File Information

Factorize a matrix for pseudo-inverse to solve the normal equation:

A*x = b

There are two advantages of pseudo-inverse compared to MATLAB pinv:
- PINV requires costly SVD
- PINV does not operated with sparse matrix.

The solution x minimize the 2-norm of the residual |Ax - b|.

In case of underdetermined system, i.e., rank(A) < length(x), the solution returned by pseudoinverse(A)*b is the least 2-norm among all solutions. Note that this property does *not* meet if backslash operator is used: x = A\b.

Method: Use QR factorization on both source and destination space. The factorized result is stored in object that can be used later to multiply with any target space vectors (RHS).

Inspired from FACTORIZE


This file inspired Free Knot Spline Approximation.

MATLAB release MATLAB 7.9 (R2009b)
Other requirements Full object oriented supported Matlab version
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (2)
31 Jan 2016 Daniel Vasilaky

One big problem with pseudo-inverse; it’s a discontinuous mapping of the data when the matrix is not full rank. In other words, the pseudo-inverse of a rank deficient matrix is sensitive to noisy data. See Golub , Matrix Computation 4th edition section 5.5.5. You need regularization.

Comment only
28 Apr 2010 dm

dm (view profile)

05 Oct 2009 1.1

New description + Iterative method with Tkhonov regularization

09 Oct 2009 1.2

Change the code structure (private function instead of static methods) for better compatible with older Matlab versions

18 Oct 2009 1.4

New methods supported: left/right multiplication, conjugate, transpose, and complex-transpose

19 Oct 2009 1.5

Detect SuiteSparseQR package to carry out QR factorization on sparse matrix, not available for Matlab prior 2009B (?)

Contact us