---
source_url: https://docs.dolphindb.cn/zh/funcs/m/matrix.html
fetched_at: 2026-05-19T09:31:08Z
category: funcs
title: matrix
sha1: d8f93e8fb4de17ed05904ded3667d7febc7101c6
---

# matrix

## 语法

`matrix(X1, [X2], ...)`

或

`matrix(dataType, rows, cols, [columnsCapacity], [defaultValue])`

或

`matrix(X)`

## 详情

返回一个矩阵。

## 参数

- 第一种情况中，**X1**, **X2**, **...**
  可以是混合类型，包括向量、矩阵、表（不能包含 SYMBOL 字段）、元组或它们的任意组合。
- 第二种情况中：

  **dataType** 是矩阵的数据类型，支持除
  INT128、UUID、IPADDR、POINT 和 DURATION 外的其他数据类型。

  **rows** 是行数。

  **cols**
  是列数。

  **columnsCapacity**
  是正整数，表示矩阵的容量，即新建该矩阵时，系统为该矩阵分配的内存（以列数为单位）。当列数超过 *capacity*
  时，系统会自动扩充容量。系统首先会分配当前容量1.2~2倍的内存，然后复制数据到新的内存空间，最后释放原来的内存。

  **defaultValue**
  是矩阵的默认值。不指定默认值，对于整数或浮点数类型，矩阵中所有的元素都是 0，对于符号类型，所有元素都是 NULL。
- 第三种情况下：**X** 是一个数组向量（arrayVector），且数组向量每个元素的长度必须相等。

## 例子

```dolphindb
x=matrix(INT,3,2, ,1);
x;
```

| #0 | #1 |
| --- | --- |
| 1 | 1 |
| 1 | 1 |
| 1 | 1 |

```dolphindb
y = matrix(DECIMAL32(3),2,3)
y
```

| #0 | #1 | #2 |
| --- | --- | --- |
| 0.000 | 0.000 | 0.000 |
| 0.000 | 0.000 | 0.000 |

```dolphindb
s=matrix(SYMBOL,2,2, ,`T);
s;
```

| #0 | #1 |
| --- | --- |
| T | T |
| T | T |

```dolphindb
matrix(table(1 2 3 as id, 4 5 6 as value));
```

| #0 | #1 |
| --- | --- |
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |

```dolphindb
matrix([1 2 3, 4 5 6]);
```

| #0 | #1 |
| --- | --- |
| 1 | 4 |
| 2 | 5 |
| 3 | 6 |

```dolphindb
matrix([1 2 3, 4 5 6], 7 8 9, table(0.5 0.6 0.7 as id), 1..9$3:3);
```

| #0 | #1 | #2 | #3 | #4 | #5 | #6 |
| --- | --- | --- | --- | --- | --- | --- |
| 1 | 4 | 7 | 0.5 | 1 | 4 | 7 |
| 2 | 5 | 8 | 0.6 | 2 | 5 | 8 |
| 3 | 6 | 9 | 0.7 | 3 | 6 | 9 |

```dolphindb
matrix(`AA`BB`CC,`DD`EE`FF)
```

输出为：

| #0 | #1 |
| --- | --- |
| AA | DD |
| BB | EE |
| CC | FF |

当表中含有 SYMBOL 字段时，通过 matrix 进行转换时会出现报错，如下例：

```dolphindb
t = table(symbol(["a", "b"]) as sym, [1, 2] as val)
matrix(t)
// output: matrix(t) => Failed to append a table object to a matrix.
```

将 SYMBOL 类型转换为 STRING 类型后，可以进行转换，见如下代码：

```dolphindb
t = table(string(["a", "b"]) as sym, [1, 2] as val)
matrix(t)
```

| #1 | #2 |
| --- | --- |
| a | 1 |
| b | 2 |
