function [Q,R] = gs(A)
% Berechnet die QR-Zerlegung von A mittels des klassischen Gram-Schmidt-Verfahrens.

Q = zeros(size(A));
R = zeros(min(size(A)));

for j = 1:size(A,2)
    v = A(:,j);
    
    %for i = 1:j-1
    %    R(i,j) = Q(:,i)'*A(:,j);
    %    v = v - R(i,j)*Q(:,i);
    %end
    R(1:j-1,j) = Q(:,1:j-1)'*A(:,j);
    v = v - Q(:,1:j-1)*R(1:j-1,j);

    R(j,j) = norm(v);
    Q(:,j) = v/R(j,j);    
end
