The set of vectors is passed like column vectors of a matrix.
This algorithm take advantage of the matrix form using sub matrix (more vectors at the same time).
I've tested it with a random 1000x1000 matrix (so 1000 vectors 1000x1) giving a result in 7.4863 sec (mean value on 5 executions... best time 7.2321)
Vito Tafuni (2021). Gram-Schmidt (https://www.mathworks.com/matlabcentral/fileexchange/26583-gram-schmidt), MATLAB Central File Exchange. Retrieved .
Gram Schmidt provided a ranking of the columns based on reduction of remaining columns. This function doesn't have that processing.
I think QR performs better on square matrices:
ans = 0.18440
ans = 0.60662
ans = 0.020872
ans = 0.0041921
why not use QR
Inspired: Gramschmidt matrix
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!