- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
이 메서드는 행렬 내용을 분석하고 구조적 유형(대칭, 에르미트, 삼각, 대역 등)을 결정한 다음 MqlMatrixInfo 구조체를 채웁니다.
bool matrix::MatrixInfo(
|
매개변수
info
[out] 행렬 정보가 저장되는 MqlMatrixInfo 타입의 객체입니다.
반환값
행렬이 초기화되어 있고 크기가 0이 아니면 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 |
'CO': 희소 COO - 행렬 또는 벡터를 쓰기 및 읽기할 때, 'GE' 또는 'VE'로 저장하는 것보다 희소 형식으로 저장하는 것이 더 효율적인 경우 사용됩니다 |
BLASTYPE_VE 및 BLASTYPE_CO 타입은 MatrixInfo 메서드에서 반환되지 않습니다. 나머지 열거형 항목의 이름은 LAPACK에서 다양한 행렬 클래스를 나타내는 데 사용되는 약어와 일치합니다. HT 타입은 예외입니다: 에르미트 삼중대각. HT는 표준 LAPACK 용어에는 없으며, 에르미트 삼중대각 행렬을 나타내기 위해 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;
|