A = [0.620405 + 0.956953i 0.480013 + 0.048806i 0.402627 + 0.338171i; 0.589077 + 0.658457i 0.013205 + 0.279323i 0.229284 + 0.721929i; 0.092758 + 0.345687i 0.928679 + 0.241052i 0.764536 + 0.832406i; 0.912098 + 0.721024i 0.049018 + 0.269452i 0.730029 + 0.796517i; 0.112849 + 0.603871i 0.486352 + 0.142337i 0.355646 + 0.151496i ]; x = [0.20351 + 0.05401i; 0.13141 + 0.43708i; 0.29808 + 0.08789i; 0.69821 + 0.38844i; 0.74871 + 0.25821i ]; [Q,R] = qr(A); [Q,R] = qrinsert(Q,R,3,x); disp(norm(vec(Q'*Q - eye(5)),Inf) < 1e1*eps) disp(norm(vec(triu(R)-R),Inf) == 0) disp(norm(vec(Q*R - [A(:,1:2) x A(:,3)]),Inf) < norm(A)*1e1*eps)