Documentation/Calc Functions/MMULT

From The Document Foundation Wiki
Jump to navigation Jump to search
Other languages:
English • ‎Nederlands • ‎italiano



Function name:

MMULT

Category:

Array

Summary:

Calculates the third matrix produced by applying matrix multiplication to two compatible matrices.

Syntax:

MMULT(Array 1; Array 2)

Returns:

Returns an array of numbers representing the matrix product, having the same number of rows as the first argument and the same number of columns as the second argument.

Arguments:

Array 1 contains the first matrix to be used in the multiplication. This argument can take the form of an explicit cell range (such as A1:C3), the name of a named range, the name of a database range, or an inline constant array.

Array 2 contains the second matrix to be used in the multiplication. This argument can take the form of an explicit cell range (such as A1:C3), the name of a named range, the name of a database range, or an inline constant array. For the supplied matrices to be compatible for matrix multiplication, the number of columns in Array 1 must be the same as the number of rows in Array 2.

  • If either Array 1 or Array 2 is not a single area reference, then MMULT reports an invalid argument error (Err:502). The tilde (~) reference concatenation operator cannot be used to join multiple areas in these arguments.
  • If the number of columns in Array 1 is not equal to the number of rows in Array 2, then MMULT reports an invalid argument error (Err:502).
  • If any cell within either Array 1 or Array 2 is empty or contains non-numeric data, then MMULT reports a #VALUE! error.

Additional details:

Details specific to MMULT function

  • Assuming that the Array 1 argument is an m x n matrix, then for the Array 2 argument to be compatible for matrix multiplication it must be an n x p matrix. In this case, the result of the matrix multiplication will be an m x p matrix.


General information about Calc's array functions

Note pin.svg

Note:
For convenience, the information in this subsection is repeated on all pages describing Calc's array functions.

To avoid repetition within the subsequent text, only Windows/Linux key combinations are specified. The following table shows the mapping between these key combinations and their macOS equivalents.


Mapping between relevant Windows/Linux and macOS key combinations
Windows/Linux key combination macOS equivalent Comments
Ctrl + ⇧ Shift + ↵ Enter ⌘ Cmd + ⇧ Shift + ↵ Enter Create an array formula.
Ctrl + / ⌘ Cmd + / Select all cells in an array formula range. "/" is the division key on the numeric keypad.
Ctrl + C ⌘ Cmd + C Copy.
Ctrl + V ⌘ Cmd + V Paste.


  • An array is a rectangular range of cells containing data. For example, a square range of three rows by three columns is a 3 x 3 array. The smallest possible array is a 1 x 2 or 2 x 1 array, with two adjacent cells.
  • A formula in which the individual values in a cell range are evaluated is referred to as an array formula. The difference between an array formula and other formulas is that the array formula deals with several values simultaneously instead of just one.
  • If you create an array formula using the Function Wizard, you must mark the Array check box so that the results are returned in an array. Otherwise, only the value in the upper-left cell of the array being calculated is returned.
  • If you enter the array formula directly into the cell, you must use the key combination Ctrl + ⇧ Shift + ↵ Enter instead of just the ↵ Enter key. Only then does the formula become an array formula.
  • An array formula is displayed inside curly brackets or braces ("{" and "}"). It is not possible to create an array formula by manually entering these braces.
  • Some array functions take parameters that are forced to evaluate as an array formula, even when the formula is entered normally. These are MDETERM, MINVERSE, MMULT, SUMPRODUCT, SUMX2MY2, SUMX2PY2, and SUMXMY2.
  • Calc supports constant inline arrays in formulas. An inline array is enclosed within curly brackets or braces ("{" and "}"). Individual elements can be numbers (including negatives), logical constants (TRUE, FALSE), or literal strings. Non-constant expressions are not allowed. Arrays can be entered with one or more rows, and one or more columns. All rows must comprise the same number of elements; similarly, all columns must comprise the same number of elements.
  • Editing array formulas. Select the cell range containing the array formula. To select the whole range, position the cursor inside the range and press Ctrl + /. Then press F2 or position the cursor in the Input line, edit the formula as required, and use the key combination Ctrl + ⇧ Shift + ↵ Enter.
  • Deleting array formulas. Select the cell range containing the array formula. To select the whole range, position the cursor inside the range and press Ctrl + /. Press Delete to delete the array contents, including the array formula. Alternatively, press ← Backspace to bring up the Delete Contents dialog box, select Formulas or Delete all, and click OK.
  • Copying array formulas. Select the cell range containing the array formula. To select the whole range, position the cursor inside the range and press Ctrl + /. Then press F2 or position the cursor in the Input line. Copy the formula by pressing Ctrl + C. Select a range of cells where you want to insert the array formula and either press F2 or position the cursor in the Input line. Paste the formula by pressing Ctrl + V in the selected space and confirm it using the key combination Ctrl + ⇧ Shift + ↵ Enter. The selected range now contains the array formula.
  • Adjusting an array range. Select the cell range containing the array formula. To select the whole range, position the cursor inside the range and press Ctrl + /. Below the selection, to the right, you will see a small icon with which you can zoom in or out on the range using your mouse. When you adjust the array range, the array formula will not be adjusted automatically - you are only changing the range in which the results will appear.


Examples:

Formula Description Returns
{=MMULT({1,2,3}; {4,5; 6,7; 8,9})} entered as an array formula after selecting cell A1. Here the first argument is a 1 x 3 matrix, while the second argument is a 3 x 2 matrix. The function populates cells A1 and B1 (a 1 x 2 matrix) with the values 40 and 46 respectively. See Description
{=MMULT(matrix1; matrix2)} entered as an array formula after selecting cell F7. matrix1 is a named range covering a 2 x 2 cell area containing the values {1.5, 3.5; 2, -4}. matrix2 is a database range covering a 2 x 2 cell area containing the values {1, 2; 2, 1}. Here the function populates cells F7, G7, F8, and G8 with the numbers 8.5, 6.5, -6, and 0 respectively. See Description

Related LibreOffice functions:

MDETERM

MINVERSE

MUNIT

TRANSPOSE

ODF standard:

Section 6.5.4, part 2

Equivalent Excel functions:

MMULT