%QR decomposition on a matrix of full column rank
m = 4;n = 3;A = rand(m,n);
sigma = zeros(n,1);
for k = 1:n
% Form Householder transform
sigma(k) = -A(k,k)/abs(A(k,k)) * norm(A(k:end,k));
A(k,k) = A(k,k)-sigma(k); %store the Householder vector u=x-s*e1
beta = -sigma(k) * A(k,k);%s*(s-x1)
%Updating: H a = a - (u'a)u beta^-1
for j = k+1:n
tau = A(k:end,k)' * A(k:end,j)/beta;
A(k:end,j) = A(k:end,j) - tau * A(k:end,k);
end
end
R =triu(A(1:n,1:n),1) + diag(sigma)
norm(R)