.php xmlns="http://www.w3.org/1999/.php"> - k-Wave MATLAB Toolbox

expandMatrix

Enlarge a matrix by extending the edge values.

Syntax

```mat_new = expandMatrix(mat, exp_coeff)
mat_new = expandMatrix(mat, exp_coeff, edge_val)
```

Description

`expandMatrix` enlarges an input matrix by extension of the values at the outer faces of the matrix (endpoints in 1D, outer edges in 2D, outer surfaces in 3D). Alternatively, if an input for `edge_val` is given, all expanded matrix elements will have this value. The values for `exp_coeff` are forced to be real positive integers (or zero). Note, indexing is done inline with other k-Wave functions using `mat(x)` in 1D, `mat(x, y)` in 2D, and `mat(x, y, z)` in 3D.

For example, running

```mat = magic(3)
expandMatrix(mat, 1)
expandMatrix(mat, [2 0 1 0], 0)
```

will give the outputs

```ans =

8     8     1     6     6
8     8     1     6     6
3     3     5     7     7
4     4     9     2     2
4     4     9     2     2

ans =

0     0     0     0     0
0     0     8     1     6
0     0     3     5     7
0     0     4     9     2
```

Inputs

 `mat` the matrix to enlarge `exp_coeff` the number of elements to add in each dimension, where `exp_coeff = [a]` or `[x_start, x_end]` in 1D `exp_coeff = [a]` or `[x, y]` or `[x_start, x_end, y_start, y_end]` in 2D `exp_coeff = [a]` or `[x, y, z]` or `[x_start, x_end, y_start, y_end, z_start, z_end]` in 3D (here `a` is applied to all dimensions)

Optional Inputs

 `edge_val` value to use in the matrix expansion

Outputs

 `mat_new` expanded matrix

`trimZeros`, `resize`