Files
playbook/skills/tsl-api-reference/references/codegen/builtin/math/matrix.md
T
csh e1f7ce052c feat(skills): add tsl api reference skill
Bundle the TSL API index and markdown references under the skill, route TSL docs to use it, and update the codegen index generator to maintain the bundled data.
2026-07-07 16:36:15 +08:00

22 KiB
Raw Blame History

Builtin - 数学 / 矩阵

矩阵运算

mInit(size_or_shape, value)

生成指定尺寸并填充指定值的 FMArray。

参数 类型 说明
size_or_shape array 一维长度,或形如 array(rows, cols) 的尺寸数组
value float 填充值;值的类型决定 FMArray 单元格类型

返回:fmarray

mInitDiag(rows, cols, value)

生成对角线填充值的 FMArray。

参数 类型 说明
rows integer 行数
cols integer 列数
value float 对角线填充值

返回:fmarray

mRand(rows, cols)

生成随机 FMArray。

参数 类型 说明
rows integer 行数
cols integer 列数

返回:fmarray

数值微积分

mtmF(n, m, _type)

动力指标

参数 类型 说明
n any 天数
m any 天数
_type any 结果类型

返回:any

mtmMaV(n, m)

动力指标MTM的移动平均MTMMa,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。

参数 类型 说明
n any 整数,交易日天数
m any 整数,交易日天数

返回:float

mtmV(n)

动力指标MTM,计算当日收盘价C与N日前的收盘价Cn之差M,差值越来越大则意味着市势正加速上升,与系统证券pn_stock()、系统时间pn_date()、系统周期pn_cycle()、复权方式pn_rate()和复权基准日pn_rateday()相关。调用时需注意设置系统参数。

参数 类型 说明
n any 整数,交易日天数

返回:float

frameMeanJs(data, b_type, equal_var, alpha)

均值JS压缩估计

参数 类型 说明
data array 二维数据表,T×N,T期样本数量,N个股票
b_type string 字符串,压缩目标均值向量,b0:零向量,b1:均值,b2:波动率加权均值,b3:样本均值的均方误差
equal_var bool object
alpha float 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见JS均值压缩估计

返回:array

frameMeanBs(data, alpha)

均值BS压缩估计

参数 类型 说明
data array 二维数据表,T×N,T期样本数量,N个股票
alpha float 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见BS均值压缩估计

返回:array

frameMeanBop(data, b_type, alpha)

均值BOP压缩估计

参数 类型 说明
data array 二维数据表,T×N,T期样本数量,N个股票
b_type string 字符串,压缩目标均值向量,b0:零向量,b1:均值,b2:波动率加权均值,b3:样本均值的均方误差
alpha float 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见BOP均值压缩估计

返回:array

frameCovLw(data, alpha)

协方差LW压缩估计

参数 类型 说明
data array 二维数据表,T×N,T期样本数量,N个股票
alpha float 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见LW协方差压缩估计

返回:array

frameCovOas(data, alpha)

协方差OAS压缩估计

参数 类型 说明
data array 二维数据表,T×N,T期样本数量,N个股票
alpha float 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见OAS协方差压缩估计

返回:array

frameCovBs(data, alpha)

协方差BS压缩估计

参数 类型 说明
data array 二维数据表,T×N,T期样本数量,N个股票
alpha float 实数,压缩系数,0到1,缺省时系统自动计算(推荐),计算方式见BS协方差压缩估计

返回:array

arGetValue2()

数组类型教学函数。返回当前股票历史资产负债表序列的第四项,与系统参数(股票)相关。

返回:array

arSubArray(stocks, rdate)

字符串数组类型教学函数。返回字符串数组Stocks中每一只股票在指定报告期Rdate的十大股东情况。

参数 类型 说明
stocks array 证券,股票代码
rdate datetime 报告期

返回:array

arDefine1(_type)

数组类型教学函数。跟据Type的值来返回相应的随机数组。

参数 类型 说明
_type any 用户自定义

返回:array

arGetValue1(bkname)

数组类型教学函数。对板块Bkname下证券代码遍历,获得每个证券当前时间的收盘价。

参数 类型 说明
bkname string 市场与板块

返回:array

arDefine3()

数组类型教学函数。创建一个10×10的二维随机数组,同时对列下标命名。

返回:array

demoMtVaCholesky()

mt_va_Cholesky()函数教学函数。对指定对称正定矩阵的行列式值平方根,其中矩阵为array( (5.0,7.0,6.0,5.0),(7.0,12.0,8.0,7.0), (6.0,8.0,10.0,9.0),(5.0,7.0,9.0,10.0));。

返回:float

demoMtIvGaussJordan()

mt_iv_Gauss_Jordan()函数教学函数。求一般实矩阵的逆矩阵,其中求逆的矩阵A=array((0.2368,0.2471,0.2568,1.2671),(0.1968,0.2071,1.2168,0.2271),(0.1581,1.1675,0.1768,0.1871),(1.1161,0.1254,0.1397,0.149))。

返回:any

demoMtSubtraction()

mt_Subtraction()函数教学函数。矩阵减法,其中矩阵A=array((3,-3),(5,-5))B=array((-2,4),(1,8)),返回A-B。

返回:any

demoMtAddition()

mt_Addition ()函数教学函数。矩阵加法,其中矩阵A=array((3,-3),(5,-5))B=array((-2,4),(1,8)),返回A+B。

返回:any

demoMtTransposition()

mt_Transposition()函数教学函数。矩阵转置,返回转置后的矩阵,其中转置的矩阵A=array((3,-3,11),()5,-5,8)。

返回:any

framedropDuplicates(data, subset, keep, rowname)

数据表-去重

参数 类型 说明
data array Table,二维数据表,源数据
subset string String,去重字段
keep string String,去重保留方法,""f"":保留首个,""l"":保留最后
rowname string String,保留原索引重置字段名

返回:array

framedropNa(data, how, subset)

数据表-去掉含Nan的行

参数 类型 说明
data array Table,二维数据表,源数据
how string String,去na行方法,默认/1/""any"":任意,2/""all"":所有
subset string String,去重字段

返回:array

framePivotTable(t, index, columns, vals, aggfunc, aggfuncnames)

分组、透视、汇总,类似可见Pivot_table

参数 类型 说明
t any 数据表类型,数据表
index string 字符串,行分类字段,字段值含有nill等不可设为索引
columns array 一维字符串数组,列分类字段,字段值含有nill等不可设为索引
vals array 一维字符串数组,值字段,未指定时,代表对所有除index、columns 指定字段之外的所有字段计算
aggfunc string 字符串,值汇总函数,支持如下:;a、所有 TS_SQL 聚合函数:e.g:"avg"(avgof),"sum"(sumof)b、内置函数:"_details": 分组详情;"_first": 第一个;"_last": 最后一个;c、自定义函数中使用关键字thisgroup 得到当前分组数据。
aggfuncnames array 一维字符串数组,自定义汇总函数名称对照表

返回:array

framelagZf(t, period, fillzero)

数据表-推移涨幅(%) 涨幅(%)算法: period>0: 前n期涨幅 r[i] := (t(i)/t(i-period)-1)*100; period<0: 到未来n期涨幅 r[i] := (t(i-period)/t(i)-1)*100; 注意period>0时,与framePct_change的结果一致。

参数 类型 说明
t array Array of number,数据表,支持一维和二维
period any Integer,移动期数,默认1
fillzero bool Bool,下标越界是,是否返回0.False返回inf

返回:array

framepctChange(t, period, fillzero)

数据表-到当期的变动百分比(%) 变动百分比(%)算法 r[i] := (t(i)/t(i-period)-1)*100;

参数 类型 说明
t array Array of number,数据表,支持一维和二维
period any Integer,变动期数,默认1
fillzero bool Bool,下标越界是,是否返回0. False返回inf

返回:array

frameAddprefix(t, prefix, ifcopy)

数据表-数组下标批量加前缀 二维数组,对列名加前缀 一维数组,对行下标加前缀

参数 类型 说明
t any Table,源数组
prefix string String,前缀
ifcopy bool Bool,是否在拷贝后的数组改列名,默认True

返回:array

frameAddsuffix(t, suffix, ifcopy)

数据表-数组下标批量加后缀 二维数组,对列名加后缀 一维数组,对行下标加后缀

参数 类型 说明
t any Table,源数组
suffix string String,后缀
ifcopy bool Bool,是否在拷贝后的数组改列名,默认True

返回:array

frameIndexFilter(rawkeys, filter_cond, filter_type, dz_valuetokey)

数组筛选器,用于下标数组行名或列名的筛选器

参数 类型 说明
rawkeys array 一维字符串数组,下标数组(0开始的自增下标)
filter_cond string 字符串,筛选条件
filter_type any 用户自定义,筛选类型
dz_valuetokey any 整数,Out:类型1时,输出ivalue对照用

返回:array

frameIndexGetilocDz(raw_data_cols)

用于方便获取 下标值 与 字段位置 下标数组对照(下标值->下标位置)

参数 类型 说明
raw_data_cols array 一维字符串数组,下标数组(从0开始自增数组)

返回:array

mtMultiplication(a, b, c)

求N×M阶矩阵A与M×L阶矩阵B的乘积矩阵,即C=A×B

参数 类型 说明
a array 实型二维数组,体积为N×M。被乘矩阵
b array 实型二维数组,体积为M×L。乘矩阵
c array 实型二维数组,体积为N×L。返回的结果矩阵

返回:any

mtAddition(a, b, c)

求N×M阶矩阵A与N×M阶矩阵B的和矩阵,即C=A+B

参数 类型 说明
a array 实型二维数组,体积为N×M。被加矩阵
b array 实型二维数组,体积为N×M。加矩阵
c array 实型二维数组,体积为N×M。返回的结果矩阵

返回:any

mtSubtraction(a, b, c)

求N×M阶矩阵A与N×M阶矩阵B的差矩阵,即C=A-B

参数 类型 说明
a array 实型二维数组,体积为N×M。被减矩阵
b array 实型二维数组,体积为N×M。减矩阵
c array 实型二维数组,体积为N×M。返回的结果矩阵

返回:any

mtTransposition(a, c)

求m×n阶矩阵A的转置矩阵,即C=

参数 类型 说明
a array 实型二维数组,体积为N×M。转置前矩阵
c array 实型二维数组,体积为M×N。返回转置后的结果矩阵

返回:any

mtIvGaussJordan(a, x)

用高斯-约当(Gauss-Jordan)法求解n阶方阵A的逆矩阵

参数 类型 说明
a array 实型二维数组,体积为N×N。原矩阵
x array 实型二维数组,体积为N×N。返回的逆矩阵

返回:any

mtIvLdl(a, x)

求n阶对称正定矩阵A的逆矩阵

参数 类型 说明
a array 实型二维数组,体积为N×N。原矩阵,必须为一个对称矩阵
x array 实型二维数组,体积为N×N。返回的逆矩阵

返回:any

mtVaGaussJordan(a, v)

用高斯-约当(Gauss-Jordan)法求解n阶方阵A的行列式值

参数 类型 说明
a array 实型二维数组,体积为N×N。
v float 实型数。返回的行列式值

返回:any

mtVaCholesky(a, v)

求对称正定矩阵的行列式值平方根

参数 类型 说明
a array 实型二维数组,体积为N×N。原矩阵,必须为一个对称矩阵
v float 实型数。返回矩阵行列式值的平方根

返回:any

mtDecomposeLu(h, l, u)

进行lu分解,H方阵,则可以得到下三角阵L,上三角矩阵U

参数 类型 说明
h array 需要被分解的对称矩阵
l array 下三角阵
u array 上三角阵

返回:any

chol(h, l, p, options, sneg)

进行乔列斯基分解,H对称正定,则可以得到三角阵L

参数 类型 说明
h array 需要被分解的对称矩阵,正定矩阵的分解才能成功
l array 变参返回乔列斯基分解得到的三角阵
p integer 变参返回H的分解信息,-1表示全部分解成功,否则表示分解到第p步
options array 三角阵选项,默认'upper'为上三角,'lower' 为下三角
sneg array 当 H 非正定时计算曲率方向,正定时为空

返回:array

示例

h := corr(rand(100, 4));
chol(h, l, p); // 乔列斯基分解
if p = -1 then return l; // p=-1表示分解成功
// 输出:
// Execute script error at Line:1
// function:__main__:line 1:instruction:rand: function:corr compile error or not found
// function:__main__:line 1:instruction:rand: function execute error

mtDecomposeQr(m, q, r, e, qr_type)

E缺省的时候,对矩阵进行QR分解,M=Q :*R,不缺省E的时候对矩阵进行QRe分解,M:*e=Q:*R.该分解使得R矩阵的对角元按绝对值从大倒小排列

参数 类型 说明
m array 待分解矩阵
q array 可选参数,变参返回正交矩阵Q
r array 可选参数,变参返回上三角矩阵R
e array 可选参数,变参返回列置换矩阵E,默认E的结构是一个方阵,当有qr_Type参数时,0:E方阵,1:E为1维数组,2:忽略E参数。
qr_type any 可选参数,整数,为0,1,2之一,用于设定E参数的行为。

返回:array

mtDecomposeEig(a, wr, wi, vr)

计算特征值及特征向量

参数 类型 说明
a array 需要被计算的n*m矩阵
wr array 变参返回A的特征值的实部,一维数组
wi array 变参返回A的特征值的虚部,一维数组
vr array 变参返回A的特征向量,二维数组

返回:array

mtDecomposeSvd(a, s, u, d)

矩阵的奇异值(SVD)分解

参数 类型 说明
a array 待分解的m*n矩阵
s array 变参返回A的奇异值,一维数组
u array 变参返回A的左奇异矩阵,二维数组
d array 变参返回A的右奇异矩阵,二维数组

返回:any

mtDecomposeChol(a, ra, flag)

cholesky分解基础函数;如果不担心效率可以使用公用函数chol

参数 类型 说明
a array 待分解的方正矩阵(二维数字数组,行列数相同)
ra array 分解结果返回
flag bool object

返回:array

mtDecomposeLdl(a, ra, p)

ldl 分解基础函数,如果a正定L*D*`L=A;

参数 类型 说明
a array 待分解的方正矩阵(二维数字数组,行列数相同)
ra array 分解结果返回,包括,三角矩阵,对角矩阵
p array 分解结果的行列信息.a如果为正定矩阵那么p为1到length(a)递增序列.此时,ra的下三角为 L矩阵,对角元为D矩阵.当p为非递增序列,时表示行列置换信息.如果p[i]=k>0 and k<> i+1,那么a的i行和k-1行互换,i列与k-1列互换,p[i]=k<0 那么d在此处为2*2的块,在ra的i-1,i行列的4个元,a的第i行和k-1行互换,i列和k-1列互换.

返回:array

reIndex2(data, flag)

修改数组的行标或列名,主要用于字符串下标修改为数字下标等

参数 类型 说明
data array,tablearray
flag integer

返回:array,tablearray

示例

范例数据表:a := array('C':('A':1,'B':'too'),'D':('A':2,'B':'two'));

// 其显示如下:

范例一:将表列标改为数字

a := array('C': ('A': 1, 'B': 'too'), 'D': ('A': 2, 'B': 'two'));
return reIndex2(a, 0);
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:usercall: function:reIndex2 compile error or not found
// function:__main__:line 2:instruction:usercall: function execute error

范例二:将行列标作为首列首行

a := array('C': ('A': 1, 'B': 'too'), 'D': ('A': 2, 'B': 'two'));
return reIndex2(a, 5);
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:usercall: function:reIndex2 compile error or not found
// function:__main__:line 2:instruction:usercall: function execute error

orth(a)

矩阵范围内的标准正交基向量

参数 类型 说明
a array 数组,

返回:array

示例

// 计算矩阵A的标准正交基
a := array((0, 1), (1, 1), (1, 0));
return orth(a);
// 输出:
// Execute script error at Line:3
// function:__main__:line 3:instruction:usercall: function:orth compile error or not found
// function:__main__:line 3:instruction:usercall: function execute error

det(a)

行列式

参数 类型 说明
a array 二维数字数组 样本

返回:real

示例

a := array((1, 2), (3, 4));
return det(a); // -2

isSymmetry(a, tol)

判断是否为对称矩阵

参数 类型 说明
a array array 二维数组
tol real real 精度

返回:integer

示例

a := array((2, 1), (1, 3));
return isSymmetry(a, 0.1); // 1

diag(a)

对角阵

参数 类型 说明
a array array 数组

返回:array

示例

a := array((2, 1), (1, 3));
return diag(a); // array(2,3);

norm2(a, flag)

范数

参数 类型 说明
a array 二维数字数组 样本
flag string string 范数类型

返回:real

示例

a := array((2, 1), (1, 3));
return norm2(a, 'inf'); // 4

roots(p)

一元n次方程求根

参数 类型 说明
p array array 多项式

返回:array

示例

// 求根:3x^3+x^2+x^1+0^0=0
return roots(array(0, 1, 1, 3));
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:array: function:roots compile error or not found
// function:__main__:line 2:instruction:array: function execute error

cond(x)

求矩阵 X 的条件数,最大奇异值除最小奇异值

参数 类型 说明
x array array 需要求条件数的矩阵或二维数组

返回:real

示例

x := array((9, 1), (-1, 0), (0, 2), (1, 1));
return cond(x); // 4.22

pinv(a, t)

伪逆

参数 类型 说明
a array array 矩阵
t real real 精度 默认为 2.220446049250313e-016

返回:array

示例

x := array((9, 1), (-1, 0), (0, 2), (1, 1));
return pinv(x);
// 输出:
// Execute script error at Line:2
// function:__main__:line 2:instruction:usercall: function:pinv compile error or not found
// function:__main__:line 2:instruction:usercall: function execute error

eigen(a, eigen, eigenvectors, isreal)

特征根与特征向量

参数 类型 说明
a array array 特征值分解的数据
eigen array array 变参返回特征值
eigenvectors array array 变参返回特征向量
isreal integer bool 是否只输出实特征值及特征向量

返回:integer

示例

a := array((1, 2), (3, 4));
eigen(a, eigen);
return eigen;
// array(-0.37,5.37)

isDefinite(h)

判断矩阵是否正定、半正定,采用 Cholesky 分解方法

参数 类型 说明
h array array 样本

返回:real

示例

x := array((3, 1), (1, 4));
return isDefinite(x); // 1

transPose(data)

数组转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。

参数 类型 说明
data array 数据表结构数据,第一列数据必须为字符串并且列数要大于3

返回:array

transPoseForChart(data)

表格转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。

参数 类型 说明
data array 数据表类型

返回:array

transPoseForChartSysParam()

表格转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。

返回:array

transPoseForChartSysParamEx()

表格转置。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。

返回:array

transDataStandardize(nil_v)

空(NIL)数据标准化。注意,该函数主要用于客户端结果处理,不提供给用户程序编辑。

参数 类型 说明
nil_v integer Nil类型的数据标准化后的值

返回:array