IncMatrix - MetaTrader 5 库
用于处理矩阵的类。
矩阵是按一维数组创建的,顺序为:第一行、第二行等的元素。最后两个元素表示矩阵的大小:列数和行数。
双倍的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
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
