- 显示:
- 1425
- 等级:
- 已发布:
- 2014.02.03 07:34
-
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
用于处理矩阵的类.
矩阵使用一维数组创建, 按顺序: 第一行的元素, 第二行等等. 最后两个元素表示矩阵的大小: 列数和行数.
例子:
double m[]={1,2,3, 4,5,6, 2,3}; // 两行三列的矩阵.
类方法:
方法 | 方法的描述和参数 |
---|---|
void SetSize( |
设置矩阵 aA 的大小. aRows - 行数, aCols - 列数. |
void SetValue( |
设置矩阵 (aA) 位于 aRow 行, aCol 列的元素的值 (Value). |
int GetSize( |
返回矩阵 aA 元素的数量. 使用引用返回: aRows - 行数, aCols - 列数. |
int GetRows( |
返回矩阵 aA 的行数. |
int GetCols( |
返回矩阵 aA 的列数. |
double GetValue( |
取得矩阵 aA 位于 aRow 行和 aCol 列的元素的值. |
void Copy( |
从数组 aFrom 到数组 aTo 复制矩阵. |
bool CheckForAdd( |
检查两个矩阵大小是否适合相加 (高度和宽度完全吻合). |
bool CheckForMult( |
检查两个矩阵大小是否适合相乘 (矩阵 aA 的列数等于矩阵 aB 的行数). |
bool CheckIsSq( |
检查矩阵是否为正方. |
void AddNum( |
把数字 aNum 加到矩阵 aA. 结果矩阵以引用形式使用数组 aR. |
void MultNum( |
使用数字 aNum 和矩阵 aA相乘. 结果矩阵以引用形式使用数组 aR. |
void AddMx( |
把矩阵 aA 和 aB 相加. 结果矩阵以引用形式使用数组 aAB. |
void MultMx( |
把矩阵 aA 和 aB 相乘. 结果矩阵以引用形式使用数组 aAB. |
void Transpose( |
转置矩阵 aA. 转置的矩阵以引用形式使用数组 aT 返回. |
void AlgAdd( |
取得余因子矩阵. aA - 源矩阵, aAA - 余因子矩阵 (以引用返回). |
bool Invert( |
以引用的形式返回矩阵aA的反转矩阵aR. 如果反转矩阵存在, 此方法返回true, 否则返回false. |
void Triangle( |
以引用的形式返回矩阵aA的三角矩阵aT. |
void Minor( |
以行数aRow和列数aCol返回矩阵aA的小部分. 小部分以引用形式在数组aM中返回. |
double MinorDef( |
返回矩阵aA以行aA和列aCol确定的子矩阵的行列式值. |
void MinorDefMx( |
取得子矩阵 (矩阵值使用子行列式). aA - 源矩阵, aM - 子行列式的矩阵 (用引用返回). |
double Def( |
返回矩阵 aA 的行列式值. |
int Rank( |
返回矩阵 aA 的级别. |
int RankDRC( |
使用引用返回矩阵aA的级别:
|
void CopyCol( |
从矩阵 aFrom 的 aFromCol 列复制到矩阵 aTo 的 aToCol列. 结果以引用方式在数组 aR 中返回. |
void CopyRow( |
从矩阵 aFrom 的 aFromRow 行复制到矩阵 aTo 的 aToRow 行. 结果以引用方式在数组 aR 中返回. |
void AppendCol( |
把 aC 列增加到矩阵 aA 以扩展矩阵. 结果以引用方式在数组aF中返回. |
void AppendRow( |
把 aR 行增加到矩阵 aA 以扩展矩阵. 结果以引用方式在数组aF中返回. |
bool SystemKramer( |
使用克拉默法则解决线性方程系统.
|
bool SystemInverse( |
使用反转矩阵解决线性方程系统.
|
bool SystemGauss( |
使用高斯消元法解决线性方程系统.
|
int SystemCheck( |
检查方程系统.
返回值:
|
void Alert( |
在一个提醒框中显示整个矩阵Displays the entire matrix in one alert box.
|
void Alert2( |
在提醒框中按行显示矩阵, 行数从底部到顶部, 然后是标题, 这样, 在提醒框中矩阵方向就显示正常了: 顶部是标题, 然后按顺序显示行. |
void Alert1Str( |
在提醒框中以字符串显示矩阵数组. |
sMatrix.mq4 脚本是使用此库解线性方程的例子, 分别使用克拉默法则, 转换矩阵和高斯消元法.
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/951