Jump to navigation Jump to search
Computes the Schmidt rank of a bipartite vector

Other toolboxes required none
Related functions OperatorSchmidtRank
Function category Entanglement and separability

SchmidtRank is a function that computes the Schmidt Rank of a bipartite vector. If the vector is full, the Schmidt rank is computed using MATLAB's rank function. If the vector is sparse, the Schmidt rank is computed using the QR decomposition.


  • RNK = SchmidtRank(VEC)
  • RNK = SchmidtRank(VEC,DIM)
  • RNK = SchmidtRank(VEC,DIM,TOL)

Argument descriptions

  • VEC: A bipartite vector (e.g., a pure quantum state) to have its Schmidt rank computed.
  • DIM (optional, by default has both subsystems of equal dimension): A 1-by-2 vector containing the dimensions of the subsystems that VEC lives on.
  • TOL (optional, default sqrt(length(VEC))*eps(norm(VEC))): The numerical tolerance used when determining if a Schmidt coefficient equals zero or not.


The following code computes a random state vector in $\mathbb{C}^4 \otimes \mathbb{C}^6$ with Schmidt rank three, and then verifies that its Schmidt rank is indeed 3:

>> SchmidtRank(RandomStateVector([4,6],0,3),[4,6])

ans =


Source code

Click here to view this function's source code on github.