function [Q,R] = mgs(A) % usage: [Q,R] = mgs(A) % description: this function calculates a reduced QR % factorizaton of full column rank matrix A (this is % assumed!) by the modified Gram-Schmidt algorithm. % local variables: % ii,jj: index variables [m,n] = size(A); Q = A; R = zeros(n,n); for ii = 1:n R(ii,ii) = norm(Q(:,ii)); Q(:,ii) = Q(:,ii)/R(ii,ii); for jj = (ii+1):n R(ii,jj) = Q(:,ii)'*Q(:,jj); Q(:,jj) = Q(:,jj) - R(ii,jj)*Q(:,ii); end end