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
aand a 0 indicates an element should be selected fromb. - a (Scalar, Nx1 vector, 1xK matrix or NxK matrix) – The elements to return where
conditionequals 1. - b (Scalar, Nx1 vector, 1xK matrix or NxK matrix) – The elements to return where
conditionequals 0.
Returns: c (NxK matrix) – The combined data.
- condition (NxK matrix) – Binary matrix where a 1 indicates an element should be selected from
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
Remarks¶
- To return the elements with the greatest (or least) magnitude among two matrices, use
maxv()(orminv()). - To replace elements according to a binary matrix or vector, use
missex().
See also
Functions indexcat(), minv(), maxv(), missex(), reclassify(), reclassifycuts()