Extract linearly independent subset of matrix columns
This submission is a very simple code routine that I have used for many years for finding a maximal subset of linearly independent columns of a matrix. It is based on an old conversation with Bruno Luong, which has recently resumed here,
and where he gives some mathematical explanation behind the method. I post this here for ease of reference, as it seems to be a frequently sought tool by Matlab Community members.
USAGE:
Extract a linearly independent set of columns of a given matrix X
[Xsub,idx]=licols(X)
in:
X: The given input matrix
tol: A rank estimation tolerance. Default=1e-10
out:
Xsub: The extracted columns of X
idx: The indices (into X) of the extracted columns
EXAMPLE:
>> A=eye(3); A(:,3)=A(:,2)
A =
1 0 0
0 1 1
0 0 0
>> [X,idx]=licols(A)
X =
1 0
0 1
0 0
idx =
1 2
Cite As
Matt J (2026). Extract linearly independent subset of matrix columns (https://uk.mathworks.com/matlabcentral/fileexchange/77437-extract-linearly-independent-subset-of-matrix-columns), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxTags
Acknowledgements
Inspired: SoRoSim
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
