- MatrixInfo
- IsSymmetric
- IsHermitian
- IsUpperTriangular
- IsLowerTriangular
- IsUpperTrapezoidal
- IsLowerTrapezoidal
- IsUpperHessenberg
- IsLowerHessenberg
- IsTridiagonal
- IsUpperBidiagonal
- IsLowerBidiagonal
- IsDiagonal
- IsScalar
MatrixInfo
Die Methode analysiert den Matrixinhalt, bestimmt den Strukturtyp der Matrix (symmetrisch, hermitesch, dreieckig, bandförmig usw.) und füllt die Struktur MqlMatrixInfo.
bool matrix::MatrixInfo(
|
Parameter
info
[out] Ein Objekt des Typs MqlMatrixInfo, in dem die Matrixinformationen abgelegt werden.
Rückgabewert
Gibt true zurück, wenn die Matrix initialisiert ist und eine Größe ungleich null hat. Andernfalls wird false zurückgegeben.
Hinweis
Das Objekt der Struktur MqlMatrixInfo enthält mehr Informationen, als einzelne Methoden zur Matrixklassifizierung liefern können (IsSymmetric, IsHermitian, IsUpperTriangular usw.).
struct MqlMatrixInfo
|
Informationen aus der Struktur MqlMatrixInfo werden beim Schreiben einer Matrix in eine Datei und beim Lesen einer Matrix aus einer Datei verwendet. Der Wert data_size wird abhängig von der erkannten Matrixklasse berechnet und enthält die Anzahl der Bytes, die zum Speichern der Matrix erforderlich sind. Beispielsweise belegt eine allgemeine Matrix (GE) m * n * sizeof(type) Bytes. Eine allgemeine Bandmatrix (GB) belegt (kl+ku+1) * n * sizeof(type) Bytes. Eine symmetrische n-x-n-Matrix (SY) belegt n * (n+1)/2 * sizeof(type) Bytes.
Eine Enumeration, die den Typ der erkannten Matrix enthält.
ID |
Beschreibung |
|---|---|
BLASTYPE_GE |
'GE': allgemeine Matrix |
BLASTYPE_BD |
'BD': bidiagonale Matrix |
BLASTYPE_DI |
'DI': diagonale Matrix |
BLASTYPE_GB |
'GB': allgemeine Bandmatrix |
BLASTYPE_GT |
'GT': allgemeine tridiagonale Matrix |
BLASTYPE_HB |
'HB': hermitesche Bandmatrix |
BLASTYPE_HE |
'HE': hermitesche Matrix |
BLASTYPE_HT |
'HT': hermitesche tridiagonale Matrix |
BLASTYPE_HS |
'HS': Hessenberg-Matrix |
BLASTYPE_SB |
'SB': symmetrische Bandmatrix |
BLASTYPE_ST |
'ST': symmetrische tridiagonale Matrix |
BLASTYPE_SY |
'SY': symmetrische Matrix |
BLASTYPE_TB |
'TB': dreieckige Bandmatrix |
BLASTYPE_TR |
'TR': Dreiecksmatrix |
BLASTYPE_TZ |
'TZ': Trapezmatrix |
BLASTYPE_VE |
'VE': Vektor - verwendet beim Schreiben und Lesen eines Vektors |
BLASTYPE_CO |
'CO': dünn besetztes COO - verwendet beim Schreiben und Lesen einer Matrix oder eines Vektors, wenn die Speicherung als dünn besetzte Struktur effizienter ist als die Speicherung als 'GE' oder 'VE' |
Die Typen BLASTYPE_VE und BLASTYPE_CO werden von der Methode MatrixInfo nie zurückgegeben. Die Namen der übrigen Enumerationswerte entsprechen den in LAPACK verwendeten Abkürzungen zur Bezeichnung verschiedener Matrixklassen. Der Typ HT ist eine Ausnahme: hermitesch tridiagonal. HT kommt in der Standardterminologie von LAPACK nicht vor und wird in Analogie zu ST (symmetrisch tridiagonal) eingeführt, um eine hermitesche tridiagonale Matrix zu bezeichnen; dies ermöglicht ebenfalls eine kompakte Speicherung der entsprechenden Matrix.
Flags, die den erkannten Matrixtyp genauer bestimmen.
ID |
Wert |
Beschreibung |
|---|---|---|
MATRIX_UPPER |
0x0001 |
oberer Teil oberhalb der Hauptdiagonale |
MATRIX_LOWER |
0x0002 |
unterer Teil unterhalb der Hauptdiagonale |
MATRIX_UNITDIAG |
0x0004 |
die Hauptdiagonale enthält nur Einsen (1) |
MATRIX_DIAGSCALAR |
0x0008 |
die Hauptdiagonale enthält gleiche Werte |
MATRIX_QUASI_TRIANGULAR |
0x0010 |
mögliche quasi-dreieckige Matrix |
MATRIX_TRIANGLE_RIGHT_ALIGNED |
0x0020 |
oberer dreieckiger Teil ist am rechten Rand einer breiten Matrix ausgerichtet |
MATRIX_TRIANGLE_BOTTOM_ALIGNED |
0x0040 |
unterer dreieckiger Teil ist am unteren Rand einer hohen Matrix ausgerichtet |
Die aufgeführten Flags (außer MATRIX_QUASI_TRIANGULAR) ermöglichen eine kompaktere Speicherung von Matrizen.
Beispiel
ulong n=10;
|