Module
Contents
Index 🔎︎

# 矩阵函数

此类中包含矩阵函数。

## 什么是矩阵？

包含数值的电子表格中互相关联的单元格范围称为矩阵。一个由 3 行 3 列组成的正方形单元格范围是一个 3 x 3 矩阵：

| A | B | C
1 | 7 | 31 | 33
2 | 95 | 17 | 2
3 | 5 | 10 | 50

最小的矩阵是由两个相邻单元格组成的 1 x 2 或者 2 x 1 矩阵。

## 什么是矩阵公式？

能够对单元格区域中各个值进行计算的公式称为矩阵公式。矩阵公式与其他公式的区别在于前者可同时处理多个值，而不仅局限于一个值。

矩阵公式不仅能处理多个值，而且还能返回多个值。矩阵公式的结果也是一个矩阵。

To multiply the values in the individual cells by 10 in the above array, you do not need to apply a formula to each individual cell or value. Instead you just need to use a single array formula. Select a range of 3 x 3 cells on another part of the spreadsheet, enter the formula =10*A1:C3 and confirm this entry using the key combination CommandCtrl
+ Shift + Enter. The result is a 3 x 3 array in which the individual values in the cell range (A1:C3) are multiplied by a factor of 10.

除乘法以外，还可在引用区域（矩阵）中运用其他运算符。在 LibreOffice Calc 中，可进行加 (+)、减 (-)、乘 (*)、除 (/)、乘方 (^)、字符连接 (&) 和比较（=、<>、<、>、<=、>=）等运算。如果已输入矩阵公式，这些运算符还可用于单元格区域中的单个数值，并以矩阵的形式返回结果。

矩阵公式中的比较符处理空单元格的方式与普通公式一样，也就是说，当为 0 或者空字符串时返回结果一样。例如，当单元格 A1 和 A2 为空，矩阵公式 {=A1:A2=""} 和 {=A1:A2=0} 都将返回一个 1 列 2 行且包含 TRUE 的单元格矩阵。

### 何时用矩阵公式？

当需要对不同的数值重复执行相同的计算时，使用矩阵公式可以带来不少方便。如果以后要更改计算方法，也只需更新矩阵公式。要添加任何矩阵公式，请选择整个矩阵范围，然后对矩阵公式进行所需更改。

由于数组公式不会占用大量内存，因此在需要计算多个值时，使用数组公式还可以节省空间。此外，由于可以在计算中包括多个单元格范围，因此在进行复杂计算时，数组也是非常重要的工具。LibreOffice 为数组提供了不同的数学函数，如用于两个数组相乘的 MMULT 函数，或用于计算两个数组标量乘积的 SUMPRODUCT 函数。

## 使用 LibreOffice Calc 中的矩阵公式

也可创建一个“普通”公式，其中的引用区域（例如参数）表示一个矩阵公式。结果根据引用区域与公式所在行或列的交集而得。如果没有交集或者交集区域包含多行或列，则显示错误消息 "#value!"。下面将通过具体示例加以说明：

### 创建矩阵公式

如果使用函数向导创建矩阵公式，就必须每次都选中矩阵复选框，使结果返回矩阵中。否则，将只返回被计算矩阵左上角单元格中的数值。

If you enter the array formula directly into the cell, you must use the key combination Shift + CommandCtrl
+ Enter instead of the Enter key. Only then does the formula become an array formula.

在 LibreOffice Calc 中，矩阵公式前后会加上大括号。不能通过手动输入大括号来创建矩阵公式。

结果矩阵的单元格将自动保护，无法对其进行修改。但是，您可以选择整个矩阵单元格区域后，对其进行编辑或复制矩阵公式。

### 在公式中使用内联数组常量

Calc 支持在函数中使用内联矩阵/数组常量。一个内联数组用一对花括号括起来。数组元素可以是数字（包括负数）、逻辑常量（TRUE、FALSE）或字符串，但不可以是非常量表达式。一个数组可以输入一行或多行，也可以输入一列或多列。所有行必须含有同样数目的元素， 所有列必须含有同样数目的元素。

列分隔符（分隔行内元素）与行分隔符受语言与区域决定。但本帮助内容中，“;”分号与“|”符号分别作为列与行分隔符。例如在“英语”区域中，“,”用作列分隔符，而“;”用作行分隔符。

You can view and change the row and column separator in LibreOffice - PreferencesTools - Options
- Calc - Formula - Separators.

数组不可以嵌套。

示例:

={1;2;3}

由 1、2、3 三个数字组成的单行数组。

To enter this array constant, you select three cells in a row, then you type the formula ={1;2;3} using the curly braces and the semicolons, then press CommandCtrl
+ Shift + Enter.

={1;2;3|4;5;6}

一个 2 行且每行有 3 个数值的数组。

={0;1;2|FALSE;TRUE;"two"}

一个混合数据数组。

=SIN({1;2;3})

作为一个矩阵公式输入，参数为 1、2、3，输出 3 个正弦计算结果。

### 编辑矩阵公式

1. Select the cell range or array containing the array formula. To select the whole array, position the cell cursor inside the array range, then press CommandCtrl
   + /, where / is the Division key on the numeric keypad.

2. Either press F2 or position the cursor in the input line. Both of these actions let you edit the formula.

3. After you have made changes, press CommandCtrl
   + Shift + Enter.

可设置矩阵各部分的格式。例如，可更改字体颜色。只需选择单元格区域，然后根据需要更改其属性即可。

### 复制矩阵公式

1. 选择包含矩阵公式的单元格区域或矩阵。

2. Either press F2 or position the cursor in the input line.

3. Copy the formula into the input line by pressing CommandCtrl
   + C.

4. 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.

5. Paste the formula by pressing CommandCtrl
   + V in the selected space and confirm it by pressing CommandCtrl
   + Shift + Enter. The selected range now contains the array formula.

### 调整矩阵区域

如果要编辑输出矩阵，请执行以下操作：

1. 选择包含矩阵公式的单元格区域或矩阵。

2. 在选定区域的右下方，将显示一个小图标，使用鼠标单击此图标可放大或缩小此区域。

调整矩阵区域时，不会自动调整矩阵公式。更改的只是将显示结果的区域。

By holding down the CommandCtrl
key, you can create a copy of the array formula in the given range.

### 有条件矩阵计算

有条件矩阵计算是包括 IF() 或 CHOOSE() 函数的矩阵公式。公式中的条件变量是区域引用或矩阵结果。

在以下示例中，{=IF(A1:A3>0;"yes";"no")} 公式的 >0 测试应用到区域 A1:A3 中的每个单元格，结果被复制到相应的单元格。

| A | B（公式） | B（结果）
1 | 1 | {=IF(A1:A3>0;"yes";"no")} | 是
2 | 0 | {=IF(A1:A3>0;"yes";"no")} | 否
3 | 1 | {=IF(A1:A3>0;"yes";"no")} | 是

以下函数支持强制的矩阵处理：CORREL、COVAR、FORECAST、FTEST、INTERCEPT、MDETERM、MINVERSE、MMULT、MODE、PEARSON、PROB、RSQ、SLOPE、STEYX、SUMPRODUCT、SUMX2MY2、SUMX2PY2、SUMXMY2、TTEST。如果在调用以上其中一个函数时使用区域引用作为参数，则这些函数的行为就与矩阵函数相同。下表提供强制矩阵处理的示例：

| A | B（公式） | B（结果） | C（强制的矩阵公式） | C（结果）
1 | 1 | =A1:A2+1 | 2 | =SUMPRODUCT(A1:A2+1) | 5
2 | 2 | =A1:A2+1 | 3 | =SUMPRODUCT(A1:A2+1) | 5
3 |  | =A1:A2+1 | #VALUE | =SUMPRODUCT(A1:A2+1) | 5

## FREQUENCY

Indicates the frequency distribution in a one-column-array. The function counts the number of values in the Data array that are within the values given by the Classes array.

### Syntax

FREQUENCY(Data; Classes)

Data 表示对要计算的值的引用。

Classes 表示限制值的矩阵。

您可以在此页顶部找到矩阵函数的一般性介绍。

### Example

在下表中，列 A 中显示了未经排序的测量值。列 B 中包含输入的分类上限值，用于划分列 A 中的数据。根据 B1 中输入的极限值，FREQUENCY 函数返回测量值小于或等于 5 的数目。B2 中的极限值是 10，所以 FREQUENCY 函数返回的第二个结果为测量值大于 5 且小于或等于 10 的数目。B6 中输入的文本 ">25" 仅供参考。

| A | B | C
1 | 12 | 5 | 1
2 | 8 | 10 | 3
3 | 24 | 15 | 2
4 | 11 | 20 | 3
5 | 5 | 25 | 1
6 | 20 | >25 | 1
7 | 16 |  |
8 | 9 |  |
9 | 7 |  |
10 | 16 |  |
11 | 33 |  |

选择单列区域，在其中根据类的限制输入频率数。您必须比分类上限多选一个字段。在本例中，选择区域 C1:C6。在函数向导中调用 FREQUENCY 函数。在 (A1:A11) 中选择数据范围，然后选择分类范围，在其中输入分类限制值 (B1:B6) 。选中数组复选框并单击确定。将在 C1:C6 区域中看到频率计数。

More explanations on top of this page.

## GROWTH

计算矩阵中指数回归点。

### Syntax

GROWTH(DataY; DataX; NewDataX; FunctionType)

DataY 表示 Y 数据矩阵。

DataX（可选）表示 X 数据矩阵。

NewDataX （可选择的）表示用于重新计算值的 X 数据矩阵。

FunctionType (optional). If FunctionType = 0, functions in the form y = m^x will be calculated. Otherwise, y = b*m^x functions will be calculated.

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### Example

This function returns an array and is handled in the same way as the other array functions. Select a range where you want the answers to appear and select the function. Select DataY. Enter any other parameters, mark Array and click OK.

## LINEST

返回最符合数据集的直线的回归统计数据表。

### Syntax

LINEST(data_Y; data_X; linearType; stats)

在数据点集合中，data_Y 是一个单行或列区域，用于指定 y 坐标值。

data_X 是相应的单行或列区域，用于指定 x 坐标值。如果省略 data_X，它就被默认设置为 1, 2, 3, ..., n。如果有多个变量集合，data_X 可能就是一个包含相应的多个行或列的区域。

通过使用线性回归（“最小二乘法”），LINEST 找到一条最符合该数据的直线 y = a + bx。如果有多个变量集合，该直线就会是 y = a + b1x1 + b2x2 ... + bnxn 的形式。

If linearType is FALSE the straight line found is forced to pass through the origin (the constant a is zero; y = bx). If omitted, linearType defaults to TRUE (the line is not forced through the origin).

If stats is omitted or FALSE only the top line of the statistics table is returned. If TRUE the entire table is returned.

LINEST returns a table (array) of statistics as below and must be entered as an array formula (for example by using CommandCtrl
+ Shift + Return rather than just Return).

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### Example

该函数返回一个数组，其处理方法与其他数组函数相同。选择一个用于显示结果的区域，然后选择此函数。选择 data_Y。您也可以根据需要输入其他参数。选择数组并单击确定。

如果 stats = 0，系统将至少返回回归线的斜率及其与 Y 轴的交点。如果 stats 不等于 0，则将显示其他结果。

### 其他 LINEST 结果：

请参阅以下示例：

| A | B | C | D | E | F | G
1 | x1 | x2 | y |  | 残值 |  |
2 | 4 | 7 | 100 |  | 4,17 | -3,48 | 82,33
3 | 5 | 9 | 105 |  | 5,46 | 10,96 | 9,35
4 | 6 | 11 | 104 |  | 0,87 | 5,06 | #NA
5 | 7 | 12 | 108 |  | 13,21 | 4 | #NA
6 | 8 | 15 | 111 |  | 675,45 | 102,26 | #NA
7 | 9 | 17 | 120 |  |  |  |
8 | 10 | 19 | 133 |  |  |  |

列 A 包含若干 X1 值，列 B 包含若干 X2 值，列 C 包含若干 Y 值。先将这些数值输入工作表中。接着在电子表格中设置 E2:G6 并激活函数向导。要使用 LINEST 函数，就必须在函数向导中选中矩阵复选框。然后在工作表中选择（或通过键盘输入）以下数据：

data_Y 是 C2:C8

data_X 是 A2:B8

linearType 和 stats 都被设置为 1。

只要单击确定，LibreOffice Calc 就会使用 LINEST 值填充上述示例，如该示例中所示。

The formula in the Formula bar corresponds to each cell of the LINEST array {=LINEST(C2:C8;A2:B8;1;1)}.

以下是对 LINEST 计算结果的说明：

E2 和 F2：根据 x1 和 x2 的值计算回归线 y=b+m*x 的斜率 m。以相反的顺序给出结果；即在 E2 中给出 x2 的斜率，在 F2 中给出 x1 的斜率。

G2：与 y 轴的交点 b。

E3 和 F3：斜率值的标准误差。

G3：交点的标准误差。

E4：RSQ

F4：应用回归法计算出的 y 值标准误差。

E5：从方差计算得出 F 值。

F5：从方差分析中得出自由度。

E6：y 估计值与其算术平均值的均方差和。

F6：y 估计值与给定 y 值的均方差和。

More explanations on top of this page.

## LOGEST

此函数将按指数回归曲线 (y=b*m^x) 计算输入数据的平差。

### Syntax

LOGEST(DataY; DataX; FunctionType; Stats)

DataY 表示 Y 数据矩阵。

DataX（可选）表示 X 数据矩阵。

FunctionType（可选择的）。如果 Function_Type = 0，则按公式 y = m^x 计算。否则，就按 y = b*m^x 计算。

Stats（可选择的）。如果 Stats=0，则只计算回归系数。

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### Example

请参阅 LINEST。但它不返回平方和。

## MDETERM

返回矩阵行列式的值。该函数在当前单元格中返回一个值；因此无需为计算结果定义一个区域。

### Syntax

MDETERM(Array)

Array代表一个要确定其行列式值的方阵。

You can find a general introduction to using Array functions on top of this page.

More explanations on top of this page.

## MINVERSE

返回逆矩阵。

### Syntax

MINVERSE(Array)

Array 表示要计算逆矩阵的方阵。

More explanations on top of this page.

### Example

选择一个正方形区域，然后选择 MINVERSE。选择输出矩阵，然后选择矩阵字段，并单击确定。

## MMULT

计算两个矩阵的乘积。矩阵 1 的列数必须与矩阵 2 的行数相同，方阵的行列数都必须相等。

### Syntax

MMULT(Array; Array)

第一个位置的矩阵代表用于计算矩阵乘积的第一个矩阵。

第二个位置的 Array 表示行数相同的第二个矩阵。

More explanations on top of this page.

### Example

选择一个正方形范围。选择 MMULT 函数。选择第一个矩阵，然后选择第二个矩阵。使用函数向导，选中矩阵复选框。单击确定。输出矩阵将显示在第一个选定的范围内。

## MUNIT

返回给定行列数的单位矩阵。单位矩阵是主对角线元素均等于 1、其他矩阵元素均等于 0 的方阵。

### Syntax

MUNIT(Dimensions)

维数是指单位矩阵的大小。

您可以在此页顶部找到矩阵函数的一般性介绍。

### Example

在电子表格中选择一个正方形区域，例如从 A1 至 E5。

在不取消选择区域的情况下，选择 MUNIT 函数。选中矩阵复选框。输入所需的单位矩阵维数，在本例中为 5，然后单击确定。

You can also enter the =MUNIT(5) formula in the last cell of the selected range (E5), and press Shift + Command + EnterShift + Ctrl + Enter
.

此时将显示一个单位矩阵，区域为 A1:E5。

More explanations on top of this page.

## SUMPRODUCT

将给定矩阵中的对应元素相乘，然后将乘积相加。

### Syntax

SUMPRODUCT(Array1; Array2; ...; Array30)

Array1, Array2; ...; Array30 represent arrays whose corresponding elements are to be multiplied.

至少有一个矩阵必须是参数列表的一部分。如果只给定一个矩阵，将对所有矩阵元素求和。

### Example

| A | B | C | D
1 | 2 | 3 | 4 | 5
2 | 6 | 7 | 8 | 9
3 | 10 | 11 | 12 | 13

=SUMPRODUCT(A1:B3;C1:D3) 返回 397。

计算：A1*C1 + B1*D1 + A2*C2 + B2*D2 + A3*C3 + B3*D3

可以使用 SUMPRODUCT 计算两个矢量的标量乘积。

SUMPRODUCT 将返回一个数字，无需输入函数作为矩阵函数。

More explanations on top of this page.

## SUMX2MY2

返回两个矩阵中对应值的平方差之和。

### Syntax

SUMX2MY2(ArrayX; ArrayY)

ArrayX 表示将元素平方求和的第一个矩阵。

ArrayY 表示元素将平方相减的第二个矩阵。

More explanations on top of this page.

## SUMX2PY2

返回两个矩阵中对应值平方和的总和。

### Syntax

SUMX2PY2(ArrayX; ArrayY)

ArrayX 表示将元素平方求和的第一个矩阵。

ArrayY 表示元素将平方相减的第二个矩阵。

More explanations on top of this page.

## SUMXMY2

将两个矩阵中对应值之差的平方值相加。

### Syntax

SUMXMY2(ArrayX; ArrayY)

ArrayX 表示元素将被相减并平方的第一个矩阵。

ArrayY 表示元素将被相减并平方的第二个矩阵。

More explanations on top of this page.

## TRANSPOSE

将矩阵的行和列转置。

### Syntax

TRANSPOSE(Array)

矩阵代表电子表格中要进行转置的矩阵。

您可以在此页顶部找到矩阵函数使用方法的一般性介绍。

### Example

In the spreadsheet, select the range in which the transposed array can appear. If the original array has n rows and m columns, your selected range must have at least m rows and n columns. Then enter the formula directly, select the original array and press Shift + Command + EnterShift + Ctrl + Enter
. Or, if you are using the Function Wizard, mark the Array check box. The transposed array appears in the selected target range and is protected automatically against changes.

| A | B | C | D
1 | 2 | 3 | 4 | 5
2 | 6 | 7 | 8 | 9

The above table is 2 rows, 4 columns. In order to transpose it, you must select 4 rows, 2 columns. Assuming you want to transpose the above table to the range A7:B10 (4 rows, 2 columns) you must select the entire range and then enter the following:

TRANSPOSE(A1:D2)

Then make sure to enter it as matrix formula with Shift + Command + EnterShift + Ctrl + Enter
. The result will be as follows:

| A | B
7 | 2 | 6
8 | 3 | 7
9 | 4 | 8
10 | 5 | 9

## TREND

返回线性拟合的值。

### Syntax

TREND(DataY; DataX; NewDataX; LinearType)

DataY 表示 Y 数据矩阵。

DataX（可选）表示 X 数据矩阵。

NewDataX （可选择的）表示用于重新计算值的 X 数据矩阵。

LinearType (optional). If LinearType = 0, then lines will be calculated through the zero point. Otherwise, offset lines will also be calculated. The default is LinearType <> 0.

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### Example

Select a spreadsheet range in which the trend data will appear. Select the function. Enter the output data or select it with the mouse. Mark the Array field, click OK. The trend data calculated from the output data is displayed.

相关主题

函数清单（根据类别）