% % Demo for implementing Algorithm 7.7 (page 204) % % input: A -- a matrix whose columns are to be orthonormalized % output: Q, R -- A = Q*R, Q'*Q = eye(n) % function [Q,R] = gs(A) [m,n] = size(A); % get the dimensions of A Q = zeros(m,n); % create space for Q R = zeros(n,n); % create space for R % for k = 1:n for i = 1:k-1 R(i,k) = Q(:,i)'*A(:,k); end Q(:,k) = A(:,k); for i = 1:k-1 Q(:,k) = Q(:,k) - R(i,k)*Q(:,i); end R(k,k) = norm(Q(:,k)); Q(:,k) = Q(:,k)/R(k,k); end