`MATOP(range_array_x, oper1, oper2, range_array_y)`

Generalization of MMULT.  This function calculates a third matrix by applying two operators, oper1 and oper 2.

MATOP(A, op1, op2, B); For each k:  MATOP[x, y] = MATOP[x, y] oper2 (A[x, k] oper1 B[k, y])

Range_array_x contains the first matrix.  This argument can take the form of an explicit cell range (such as A1:C3) or the name of a named range.

Range_array_y contains the second matrix.  This argument can also take the form of an explicit cell range (such as A1:C3) or the name of a named range.

Option 1:  If Oper1 equals either:

• '+' or 'sum' (addition)
• '-' or 'sub' (subtraction)
• '*' or 'prod' (multiplication)
• '/' or 'div' (division)
• '^' or 'pow' (exponential)
• 'ave' (average)
• 'min' (minimum)
• 'max' (maximum)

Then Oper 2 must equal either:

• '+' or 'sum' (addition)
• '-' or 'sub' (subtraction)

Option 2:  If Oper1 equals either:

• '=' or 'eq' (equals)
• '<>' or 'neq' (not equal)
• '<=' or 'le' (less than or equal to)
• '>=' or 'ge' (greater than or equal to

Then Oper2 must equal either:

• 'and'
• 'or'

## Examples

Example1:  Given two arrays, array1(in cells A2:B4) and array2 (in cells D2:D3), both containing constant values.

Array1 is a 3 x 2 array (3 rows, 2 columns) and Array2 is a 2 x 1 (2 rows, 1 column).  Therefore, the resulting MATOP matrix will be a 3 x 1 (3 rows, 1 column).

The MATOP function in cell F2 = MATOP(A2:B4, “*”, “+”, D2:D3).  In the MATOP function the "*" operator is used for oper1 and the “+” operator is used for oper2 making the results of this function equal to the MMULT function results.

F2 is calculated as : A2 * D2 + B2 * D3 = 1 * 7 + 4 * 8  = 39

F3 is calculated as : A3 * D2 + B3 * D3 = 2 * 7 + 5 * 8  = 54

F4 is calculated as : A4 * D2 + B4 * D3 = 1 * 7 + 4 * 8  = 69

Example2:  Given two arrays, array1(in cells A1:A3) and array2 (in cells B1:D1), both containing constant values.

Array1 is a 3 x 1 array (3 rows, 1 column) and Array2 is a 1 x 3 (1 rows, 3 columns).  The resulting MATOP matrix will be a 3 x 3 (3 rows, 3 column).

If cell B2 = MATOP(A2:A4, “min”, “+”, B1:D1), then each cell is calculated as:

B2 = MIN(A2, B1) = MIN(4, 2) = 2

C2 = MIN(A2, C1) = MIN(5, 3) = 3

D3 = MIN(A2, D1) = MIN(4, 6) = 4

B3 = MIN(A3, B1) = MIN(5, 2) = 2

etc.

Notes:

The number of columns in range_array_x must be equal to the number of rows in range_array_y. If range_array_x is an m x n matrix, then range_array_y must be an n x p matrix.  The resulting matrix will be an m x p matrix.

Array 1 and Array 2 must be contiguous ranges.

All cells within range_array_x and range_array_y must contain numeric data.  Empty cells are treated as 0.