Accelerating the pace of engineering and science

• Trials

# qrinsert

Insert column or row into QR factorization

## Syntax

[Q1,R1] = qrinsert(Q,R,j,x)
[Q1,R1] = qrinsert(Q,R,j,x,'col')
[Q1,R1] = qrinsert(Q,R,j,x,'row')

## Description

[Q1,R1] = qrinsert(Q,R,j,x) returns the QR factorization of the matrix A1, where A1 is A = Q*R with the column x inserted before A(:,j). If A has n columns and j = n+1, then x is inserted after the last column of A.

[Q1,R1] = qrinsert(Q,R,j,x,'col') is the same as qrinsert(Q,R,j,x).

[Q1,R1] = qrinsert(Q,R,j,x,'row') returns the QR factorization of the matrix A1, where A1 is A = Q*R with an extra row, x, inserted before A(j,:).

## Examples

```A = magic(5);
[Q,R] = qr(A);
j = 3;
x = 1:5;
[Q1,R1] = qrinsert(Q,R,j,x,'row')

Q1 =
0.5231    0.5039   -0.6750    0.1205    0.0411    0.0225
0.7078   -0.6966    0.0190   -0.0788    0.0833   -0.0150
0.0308    0.0592    0.0656    0.1169    0.1527   -0.9769
0.1231    0.1363    0.3542    0.6222    0.6398    0.2104
0.3077    0.1902    0.4100    0.4161   -0.7264   -0.0150
0.3385    0.4500    0.4961   -0.6366    0.1761    0.0225

R1 =
32.4962   26.6801   21.4795   23.8182   26.0031
0   19.9292   12.4403    2.1340    4.3271
0         0   24.4514   11.8132    3.9931
0         0         0   20.2382   10.3392
0         0         0         0   16.1948
0         0         0         0         0```

returns a valid QR factorization, although possibly different from

```A2 = [A(1:j-1,:); x; A(j:end,:)];
[Q2,R2] = qr(A2)

Q2 =
-0.5231    0.5039    0.6750   -0.1205    0.0411    0.0225
-0.7078   -0.6966   -0.0190    0.0788    0.0833   -0.0150
-0.0308    0.0592   -0.0656   -0.1169    0.1527   -0.9769
-0.1231    0.1363   -0.3542   -0.6222    0.6398    0.2104
-0.3077    0.1902   -0.4100   -0.4161   -0.7264   -0.0150
-0.3385    0.4500   -0.4961    0.6366    0.1761    0.0225

R2 =
-32.4962  -26.6801  -21.4795  -23.8182  -26.0031
0   19.9292   12.4403    2.1340    4.3271
0         0  -24.4514  -11.8132   -3.9931
0         0         0  -20.2382  -10.3392
0         0         0         0   16.1948
0         0         0         0         0```