MATLAB: The Gram-Schmidt algorithm for unknown n


I’m trying to understand how to carry out the gram Schmidt algorithm when you have an unknown number of vectors n.
Any help would be appreciated.

Best Answer

  • V is matrix input where vectors are column vectors. Output U is matrix with replacement vectors as column vectors.
    n = size(V,1);
    k = size(V,2);
    U = zeros(n,k);
    U(:,1) = V(:,1)/sqrt(V(:,1)'*V(:,1));
    for i = 2:k
    U(:,i) = V(:,i);
    for j = 1:i-1
    U(:,i) = U(:,i) - ( U(:,j)'*U(:,i) )/( U(:,j)'*U(:,j) )*U(:,j);
    U(:,i) = U(:,i)/sqrt(U(:,i)'*U(:,i));