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),且数组向量每个元素的长度必须相等。

详情

返回一个矩阵。

例子

x=matrix(INT,3,2, ,1);
x;
#0 #1
1 1
1 1
1 1
y = matrix(DECIMAL32(3),2,3)
y 
#0 #1 #2
0.000 0.000 0.000
0.000 0.000 0.000
s=matrix(SYMBOL,2,2, ,`T);
s;
#0 #1
T T
T T
matrix(table(1 2 3 as id, 4 5 6 as value));
#0 #1
1 4
2 5
3 6
matrix([1 2 3, 4 5 6]);
#0 #1
1 4
2 5
3 6
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
matrix(`AA`BB`CC,`DD`EE`FF)

输出为:

#0 #1
AA DD
BB EE
CC FF

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

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 类型后,可以进行转换,见如下代码:

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

#1

#2

a 1
b 2