# where#

## Purpose#

Returns elements of either `a` or `b` depending on `condition`

## Format#

c = where(condition, a, b)#
Parameters:
• condition (NxK matrix) – Binary matrix where a 1 indicates an element should be selected from `a` and a 0 indicates an element should be selected from `b`.

• a (Scalar, Nx1 vector, 1xK matrix or NxK matrix) – The elements to return where `condition` equals 1.

• b (Scalar, Nx1 vector, 1xK matrix or NxK matrix) – The elements to return where `condition` equals 0.

Returns:

c (NxK matrix) – The combined data.

## Examples#

### Basic usage#

```condition = { 1 0 0,
0 1 0 };

a = { 1 2 3,
4 5 6 };
b = { 10 20 30,
40 50 60 };

c = where(condition, a, b);
```

The code above assigns c to be equal to:

``` 1       20       30
40        5       60
```

Vectors and scalars will be expanded to fit the dimensions of the larger inputs.

```condition = { 1 0 0,
0 1 0 };

a = { 1 2 3 };
b = { 10,
40 };

c = where(condition, a, b);
```

As we see in the result below, the row vector `a` has been broadcast as if it was a 2x3 matrix with the same elements in each row, while the column vector `b` has been broadcast as if it was a 2x3 matrix with the same elements in each column.

``` 1       10       10
40        2       40
```