欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

IncMatrix - MetaTrader 5 库

author emer | 212 人阅读 | 0 人评论 |

用于处理矩阵的类。

矩阵是按一维数组创建的,顺序为:第一行、第二行等的元素。最后两个元素表示矩阵的大小:列数和行数。

双倍的m[]={1,2,3,
          4,5,6,
          2,3};// 两行三列的矩阵。

类方法:

空白设置大小(
 双倍的&aA[],
 整数一排,
 整数

设置矩阵 aA 的大小。 aRows - 行数,aCols - 列数。

空白设置值(
 双倍的&aA[],
 整数一行,
 整数科尔,
 双倍的

设置位于行 aRow、列 aCol 的矩阵 (aA) 元素的值 (Value)。

整数获取大小(
 双倍的&aA[],
 整数&行,
 整数&a 列

返回矩阵 aA 元素的数量。通过引用返回:aRows - 行数,aCols - 列数。

整数获取行(
 双倍的&aA[]

返回矩阵 aA 中的行数。

整数获取列(
 双倍的&aA[]

返回矩阵 aA 中的列数。

双倍的获取值(
 双倍的&aA[],
 整数一行,
 整数科尔

获取矩阵aA中位于行aRow和列aCol的元素的值。

空白复制(
 双倍的& aFrom[],
 双倍的&aTo[]

将矩阵从数组 aFrom 复制到数组 aTo。

布尔值检查添加(
 双倍的&aA[],
 双倍的&aB[]

检查两个矩阵的加法大小是否匹配(高度和宽度完全相等)。

布尔值检查多值(
 双倍的&aA[],
 双倍的&aB[]

检查两个矩阵的乘法大小是否匹配(矩阵 aA 中的列数等于矩阵 aB 中的列数)。

布尔值检查IsSq(
 双倍的&aA[]

检查矩阵是否为方阵。

空白加号(
 双倍的&aA[],
 双倍的一个数字,
 双倍的&aR[]

将数字 aNum 添加到矩阵 aA。结果矩阵通过数组 aR 中的引用返回。

空白多数(
 双倍的&aA[],
 双倍的一个数字,
 双倍的&aR[]

将矩阵 aA 乘以数字 aNum。结果矩阵通过数组 aR 中的引用返回。

空白添加Mx(
 双倍的&aA[],
 双倍的&aB[],
 双倍的&aAB[]

将矩阵 aA 添加到矩阵 aB。结果矩阵通过数组 aAB 中的引用返回。

空白多Mx(
 双倍的&aA[],
 双倍的&aB[],
 双倍的&aAB[])

将矩阵 aA 乘以矩阵 aB。结果矩阵通过数组 aAB 中的引用返回。

空白转置(
 双倍的&aA[],
 双倍的& 在[]

转置矩阵 aA。转置矩阵通过数组 aT 中的引用返回。

空白阿尔格加(
 双倍的&aA[],
 双倍的&aAA[]

获取辅因子矩阵。 aA - 源矩阵,aAA - 辅因子(通过引用返回)。

布尔值倒置(
 双倍的&aA[],
 双倍的&aB[]

通过引用返回矩阵 aA 的逆矩阵 aR。如果逆矩阵存在,则该方法返回 true;如果逆矩阵不存在,则返回 false。

空白三角形(
 双倍的&aA[],
 双倍的& 在[]

通过引用从矩阵 aA 返回三角矩阵 aT。

空白次要的(
 双倍的一个A[],
 整数一行,
 整数科尔,
 双倍的& 是[]

按行 aRow 和列 aCol 获取矩阵 aA 的小数。 Minor 通过数组 aM 中的引用返回。

双倍的次要防御(
 双倍的&aA[],
 整数一行,
 整数科尔

返回矩阵 aA 的行列 aRow 和列 aCol 的行列式值。

空白MinorDefMx(
 双倍的&aA[],
 双倍的& 是[]

获取次要矩阵(具有次要决定因素值的矩阵)。 aA - 源矩阵,aM - 具有次要行列式的矩阵(通过引用返回)。

双倍的定义(
 双倍的&aA[]

返回矩阵 aA 的行列式值。

整数秩(
 双倍的&aA[]

返回矩阵 aA 的秩。

整数排名DRC(
 双倍的&aA[],
 双倍的&aDef,
 整数&行,
 整数&aCol

返回矩阵 aA 的秩并按引用返回:

空白复制列(
 双倍的& aFrom[],
 双倍的& aTo[],
 整数aFromCol,
 整数aToCol,
 双倍的&aR[]

将索引为 aFromCol 的列从矩阵 aFrom 复制到矩阵 aTo 到索引为 aToCol 的列。结果通过数组 aR 中的引用返回。

空白复制行(
 双倍的& aFrom[],
 双倍的& aTo[],
 整数aFromRow,
 整数行,
 双倍的&aR[]

将索引为 aFromRow 的行从矩阵 aFrom 复制到矩阵 aTo 到索引为 aToRow 的行。结果通过数组 aR 中的引用返回。

空白追加列(
 双倍的&aA[],
 双倍的&aC[],
 双倍的&aF[]

通过向矩阵 aA 添加列 aC 来扩展矩阵 aA。结果通过数组 aF 中的引用返回。

空白追加行(
 双倍的&aA[],
 双倍的&aR[],
 双倍的&aF[]

通过向矩阵 aA 添加行 aR 来扩展矩阵 aA。结果通过数组 aF 中的引用返回。

布尔值系统克莱默(
 双倍的&aK[],
 双倍的&aY[],
 双倍的&aX[]

使用克莱默法则求解线性方程组。

布尔值系统逆(
 双倍的&aK[],
 双倍的&aY[],
 双倍的&aX[]

使用可逆矩阵求解线性方程组。

布尔值系统高斯(
 双倍的&aK[],
 双倍的&aY[],
 双倍的&aX[]

使用高斯消去法求解线性方程组。

整数系统检查(
 双倍的&aK[],
 双倍的&aY[]

检查方程组。

返回值:

空白警报(
 双倍的&aA[],
 整数a数字=2,
 细绳标题=””

在一个警报框中显示整个矩阵。

空白警报2(
 双倍的&aA[],
 整数a数字=2,
 细绳标题=””

在警报框中逐行显示矩阵,从下到上显示行,然后显示标题,即警报框中矩阵的方向正常:标题在顶部,然后按顺序显示行。

空白警报1Str(
 双倍的&aA[],
 整数a数字=2

在警报框中将矩阵数组显示为字符串。

sMatrix.mq4 脚本是使用该库通过克莱默法则、可逆矩阵和高斯消去法求解线性方程组的示例。


附件下载

📎 incmatrix.mqh (29.22 KB)

📎 smatrix.mq5 (2.18 KB)

Source: MQL5 #951

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录