This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.


Moore-Penrose inverse of a matrix

MuPAD® notebooks are not recommended. Use MATLAB® live scripts instead.

MATLAB live scripts support most MuPAD functionality, though there are some differences. For more information, see Convert MuPAD Notebooks to MATLAB Live Scripts.




linalg::pseudoInverse(A) computes the Moore-Penrose inverse of A.

If the Moore-Penrose inverse of A does not exist, then FAIL is returned.

The component ring of the matrix A must be a field, i.e., a domain of category Cat::Field.


Example 1

The Moore-Penrose inverse of the 2×3 matrix:

A := Dom::Matrix(Dom::Complex)([[1, I, 3], [1, 3, 2]])

is the 3×2 matrix:

Astar := linalg::pseudoInverse(A)

Note that in this example, only:

A * Astar

yields the identity matrix, but not (see “Backgrounds” below):

Astar * A



A matrix of category Cat::Matrix

Return Values

Matrix of the same domain type as A, or the value FAIL.


For an invertible matrix A, the Moore-Penrose inverse A* of A coincides with the inverse of A. In general, only AA*A = A and A*AA* = A* holds.

If A is of dimension m×n, then A* is of dimension n×m.

The computation of the Moore-Penrose inverse requires the existence of a scalar product on the vector space Kn, where K is the coefficient field of the matrix A. This is only the case for some fields K in theory, but linalg::scalarProduct works also for vectors over other fields (e.g. finite fields). The computation of a Moore-Penrose inverse may fail in such cases.

See Also

MuPAD Functions

Was this topic helpful?