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 (2024). Extract linearly independent subset of matrix columns (https://www.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
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.