Accelerating the pace of engineering and science

# Documentation

Linear combination of matrix columns

### Use only in the MuPAD Notebook Interface.

This functionality does not run in MATLAB.

## Syntax

```linalg::addCol(A, c1, c2, s1)
```

## Description

linalg::addCol(A, c1, c2, s1) adds s1 times column c1 to column c2, in the matrix A.

linalg::addCol(A, c1, c2, s) returns a copy of the matrix A in which column c2 of A is replaced by scol(A, c1) + col(A, c2).

linalg::addCol(A, c1, c2, s1, s2) returns a copy of the matrix A in which column c2 of A is replaced by s1col(A, c1) + s2col(A, c2).

## Examples

### Example 1

The following defines a 3×3 matrix over the integers:

```A := Dom::Matrix(Dom::Integer)(
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
)```

We replace the 2nd column by - col(A, 1) + col(A, 2), i.e., we subtract the first column from the second:

`linalg::addCol(A, 1, 2, -1)`

### Example 2

The following defines a 2×3 matrix over the reals:

```B := Dom::Matrix(Dom::Real)(
[[sin(2), 0, 1], [1, PI, 0]]
)```

If s is an expression that does not represent a real number then an error message is reported. The following tries to replace the 1st column by xcol(B, 3) + col(B, 1), where x is an identifier which cannot be converted to the component ring Dom::Real of B:

`delete x: linalg::addCol(B, 3, 1, x)`
```Error: Cannot convert 'x'. [linalg::addCol]
```

### Example 3

If symbolic expressions are involved, then one may define matrices over a component ring created by Dom::ExpressionField. The following example defines a matrix over this default component ring:

```delete a11, a12, a21, a22, x:
C := matrix([[a11, a12], [a21, a22]])```

We retry the input from the previous example:

`linalg::addCol(C, 2, 1, x)`

## Parameters

 A An m×n matrix of a domain of category Cat::Matrix c1, c2 The column indices: positive integers less or equal to n s1, s2 Expressions that can be converted to the component ring of A

## Return Values

Matrix of the same domain type as A.