# svd

singular value decomposition

### Syntax

s=svd(X) [U,S,V]=svd(X) [U,S,V]=svd(X,0) (obsolete) [U,S,V]=svd(X,"e") [U,S,V,rk]=svd(X [,tol])

### Arguments

- X
a real or complex matrix

- s
real vector (singular values)

- S
real diagonal matrix (singular values)

- U,V
orthogonal or unitary square matrices (singular vectors).

- tol
real number

### Description

`[U,S,V] = svd(X)`

produces a diagonal matrix
`S`

, of the same dimension as `X`

and with
nonnegative diagonal elements in decreasing order, and unitary
matrices `U`

and `V`

so that `X = U*S*V'`

.

`[U,S,V] = svd(X,"e")`

produces the "economy
size" decomposition. If `X`

is m-by-n with m >
n, then only the first n columns of `U`

are computed
and `S`

is n-by-n.

`s= svd(X)`

by itself, returns a vector `s`

containing the singular values.

`[U,S,V,rk]=svd(X,tol)`

gives in addition `rk`

, the numerical rank of `X`

i.e. the number of
singular values larger than `tol`

.

The default value of `tol`

is the same as in `rank`

.

### See also

### Used Functions

svd decompositions are based on the Lapack routines DGESVD for real matrices and ZGESVD for the complex case.

### History

Version | Description |

2023.0.0 | svd(X, 0) is obsolete, use svd(X, "e") instead. |

Report an issue | ||

<< sva | Eigenvalue and Singular Value | Factorization >> |