- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
该方法分析矩阵内容,确定其结构类型(对称、厄米、三角、带状等),并填充 MqlMatrixInfo 结构。
bool matrix::MatrixInfo(
|
参数
info
[out] 一个 MqlMatrixInfo 类型的对象,用于存放矩阵信息。
返回值
如果矩阵已初始化且大小非零,则返回 true。否则返回 false。
注意
MqlMatrixInfo 结构对象包含的信息比单个矩阵分类方法能够提供的信息更多(IsSymmetric, IsHermitian, IsUpperTriangular 等)。
struct MqlMatrixInfo
|
MqlMatrixInfo 结构中的信息用于写入矩阵到文件以及从文件读取矩阵。 data_size 值根据识别出的矩阵类别计算,包含存储矩阵所需的字节数。例如,通用矩阵 (GE) 占用 m * n * sizeof(type) 字节。通用带状矩阵 (GB) 占用 (kl+ku+1) * n * sizeof(type) 字节。n x n 对称矩阵 (SY) 占用 n * (n+1)/2 * sizeof(type) 字节。
包含已识别矩阵类型的枚举。
ID |
描述 |
|---|---|
BLASTYPE_GE |
'GE': 通用矩阵 |
BLASTYPE_BD |
'BD': 双对角矩阵 |
BLASTYPE_DI |
'DI': 对角矩阵 |
BLASTYPE_GB |
'GB': 通用带状矩阵 |
BLASTYPE_GT |
'GT': 通用三对角矩阵 |
BLASTYPE_HB |
'HB': 厄米带状矩阵 |
BLASTYPE_HE |
'HE': 厄米矩阵 |
BLASTYPE_HT |
'HT': 厄米三对角矩阵 |
BLASTYPE_HS |
'HS': Hessenberg 矩阵 |
BLASTYPE_SB |
'SB': 对称带状矩阵 |
BLASTYPE_ST |
'ST': 对称三对角矩阵 |
BLASTYPE_SY |
'SY': 对称矩阵 |
BLASTYPE_TB |
'TB': 三角带状矩阵 |
BLASTYPE_TR |
'TR': 三角矩阵 |
BLASTYPE_TZ |
'TZ': 梯形矩阵 |
BLASTYPE_VE |
|
BLASTYPE_CO |
MatrixInfo 方法永远不会返回 BLASTYPE_VE 和 BLASTYPE_CO 类型。其余枚举项的名称对应于 LAPACK 中用于表示各种矩阵类别的缩写。HT 类型是一个例外:厄米三对角。标准 LAPACK 术语中没有 HT,它是参照 ST(对称三对角)引入的,用于表示厄米三对角矩阵,同时也允许相应矩阵以紧凑形式存储。
用于细化已识别矩阵类型的标志。
ID |
值 |
描述 |
|---|---|---|
MATRIX_UPPER |
0x0001 |
主对角线上方的上部 |
MATRIX_LOWER |
0x0002 |
主对角线下方的下部 |
MATRIX_UNITDIAG |
0x0004 |
主对角线仅包含一 (1) |
MATRIX_DIAGSCALAR |
0x0008 |
主对角线包含相同的值 |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
可能的拟三角矩阵 |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
上三角部分与宽矩阵的右边界对齐 |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
下三角部分与高矩阵的下边界对齐 |
列出的标志(除 MATRIX_QUASI_TRIANGULAR 外)允许以更紧凑的方式存储矩阵。
示例
ulong n=10;
|