- Typen von Matrix und Vektor
- Initialisierung
- Manipulation
- Operationen
- Produkte
- Transformationen
- Statistik
- Eigenschaften
- Lösungen
- Maschinelles Lernen
- OpenBLAS
Matrizen und Vektoren
Eine Matrix ist eine zweidimensionale Anordnung von Double-, Float- oder komplexen Zahlen.
Ein Vektor ist eine eindimensionale Anordnung von Double-, Float- oder komplexen Zahlen. Der Vektor hat keinen Hinweis darauf, ob er vertikal oder horizontal ist. Dies wird durch den Verwendungskontext bestimmt. So wird beispielsweise bei der Vektoroperation Dot davon ausgegangen, dass der linke Vektor horizontal und der rechte vertikal ist. Wenn die Angabe des Typs erforderlich ist, können einzeilige oder einspaltige Matrizen verwendet werden. Im Allgemeinen ist dies jedoch nicht erforderlich.
Matrizen und Vektoren weisen den Speicher für Daten dynamisch zu. Matrizen und Vektoren sind Objekte, die bestimmte Eigenschaften haben, z. B. die Art der Daten, die sie enthalten, und die Dimensionen. Die Eigenschaften von Matrizen und Vektoren können mit Methoden wie vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() und anderen ermittelt werden. Jede Dimension kann geändert werden.
Bei der Erstellung und Initialisierung von Matrizen werden sogenannte statische Methoden verwendet (diese sind wie statische Methoden einer Klasse). Zum Beispiel: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix: :Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().
Matrix- und Vektoroperationen implizieren im Moment nicht die Verwendung des komplexen Datentyps, da diese Entwicklungsrichtung noch nicht abgeschlossen ist.
MQL5 unterstützt die Übergabe von Matrizen und Vektoren an DLLs. Dies ermöglicht den Import von Funktionen, die die entsprechenden Typen verwenden, aus externen Variablen.
Matrizen und Vektoren werden als Zeiger auf einen Puffer an eine DLL übergeben. Um z. B. eine Matrix vom Typ float zu übergeben, muss der entsprechende Parameter der aus der DLL exportierten Funktion einen Pufferzeiger vom Typ float aufnehmen.
MQL5
#import "mmlib.dll"
|
C++
extern "C" __declspec(dllexport) bool sgemm(UINT flags, float *C, const float *A, const float *B, UINT64 M, UINT64 N, UINT64 K, float alpha, float beta) |
Zusätzlich zu den Puffern sollten Sie Matrix- und Vektorgrößen für eine korrekte Verarbeitung übergeben.
Alle Matrix- und Vektormethoden sind unten in alphabetischer Reihenfolge aufgeführt.
Funktion |
Aktion |
Kategorie |
---|---|---|
Aktivierungsfunktionswerte berechnen und in den übergebenen Vektor oder Matrix schreiben. |
||
Rückgabe des Index des größten Wertes. |
||
Rückgabe des Index des kleinsten Wertes. |
||
Rückgabe des sortierten Indexes |
||
Kopiert eine Matrix, einen Vektor oder ein Array mit automatischer Typ-Umwandlung. |
||
Berechnet den gewichteten Durchschnitt von Matrix oder Vektorwerten. |
||
Berechnen der Cholesky-Zerlegung. |
||
Begrenzt die Elemente einer Matrix oder eines Vektors auf einen bestimmten Bereich gültiger Werte. |
||
Gibt einen Spaltenvektor zurück. Schreibt einen Vektor in die angegebene Spalte. |
||
Rückgabe der Anzahl der Spalten einer Matrix. |
||
Vergleich der Elemente von zwei Matrizen oder Vektoren mit der angegebenen Präzision. |
||
Vergleicht die Elemente zweier Matrizen oder Vektoren mit einer signifikanten Zahlengenauigkeit. |
||
Berechnen der Konditionszahl einer Matrix. |
||
Liefert die diskrete, lineare Faltung (Convolution) von zwei Vektoren. |
||
Gibt eine Kopie der gegebenen Matrix oder des gegebenen Vektors zurück. |
||
Abrufen der Daten des spezifizierten Indikator-Puffers im angegebenen Umfang Menge in einen Vektor |
||
Gibt die historischen Zeitreihendaten der Struktur MqlRates der angegebenen Symbolperiodenlänge in der angegebenen Menge in eine Matrix oder einen Vektor zurück. |
||
Weist die Ticks der Struktur MqlTick einer Matrix oder einem Vektor zu. |
||
Weist die Ticks des angegebenen Zeitintervalls aus der Struktur MqlTick einer Matrix oder einem Vektor zu. |
||
Berechnet den Pearson-Korrelationskoeffizienten (linearer Korrelationskoeffizient). |
||
Berechnung der Kreuzkorrelation von zwei Vektoren. |
||
Berechnet die Kovarianzmatrix. |
||
Rückgabe des kumulativen Produkts von Matrix- oder Vektorelementen, einschließlich der Elemente entlang der angegebenen Achse. |
||
Rückgabe der kumulativen Summe der Matrix- oder Vektorelemente, einschließlich derjenigen entlang der angegebenen Achse. |
||
Berechnet die Ableitungswerte der Aktivierungsfunktion, die dem übergebenen Vektor oder Matrix zugewiesen werden. |
||
Berechnen der Determinante einer quadratischen invertierbaren Matrix. |
||
Eine Diagonale extrahieren oder eine Diagonalmatrix konstruieren. |
||
Punktprodukt von zwei Vektoren. |
||
Berechnet die Eigenwerte und rechten Eigenvektoren einer quadratischen Matrix. |
||
Berechnet die Eigenwerte einer allgemeinen Matrix. |
||
Rückgabe einer Matrix mit Einsen auf der Diagonale und Nullen an anderer Stelle. |
||
Füllen des angegebenen Wertes einer vorhandenen Matrix oder Vektors. |
||
Zugriff auf ein Matrixelement über einen Index statt über zwei. |
||
Erstellung und Rückgabe einer neuen Matrix, die mit dem angegebenen Wert gefüllt wurde. |
||
Die Methode GeMM (General Matrix Multiply) implementiert die allgemeine Multiplikation von zwei Matrizen. |
||
Rückgabe einer Zahl mit dem Wert NaN in einer Matrix/einem Vektor |
||
Horizontales Teilen einer Matrix in mehrere Submatrizen. Dasselbe wie Split mit axis=0. |
||
Erzeugt eine Identitätsmatrix mit der angegebenen Größe. |
||
Initialisierung einer Matrix oder eines Vektors. |
||
Inneres Produkt von zwei Matrizen. |
||
Berechnung der multiplikativen Inversen einer quadratischen invertierbaren Matrix nach der Jordan-Gauss-Methode. |
||
Rückgabe des Kronecker-Produkts von zwei Matrizen, Matrix und Vektor, Vektor und Matrix oder zwei Vektoren. |
||
Berechnen eines Vektors/einer Matrix mit berechneten linearen Regressionswerten |
||
Berechnet die Verlustfunktionswerte und schreibt sie in den übergebenen Vektor oder Matrix. |
||
Rückgabe der Lösung der kleinsten Quadrate von linearen algebraischen Gleichungen (für nicht quadratische oder entartete Matrizen). |
||
Implementierung einer LU-Zerlegung einer Matrix: das Produkt aus einer unteren und einer oberen Dreiecksmatrix. |
||
Implementiert eine LUP-Faktorisierung mit partieller Permutation, d.h. eine LU-Zerlegung nur mit Zeilenpermutationen: PA=LU. |
||
Matrixprodukt von zwei Matrizen. |
||
Rückgabe des größten Wertes einer Matrix oder Vektors. |
||
Berechnung des arithmetischen Mittels der Elementwerte. |
||
Berechnung des Medians der Matrix- oder Vektorelemente. |
||
Rückgabe des kleinsten Wertes einer Matrix oder Vektors. |
||
Rückgabe der Matrix- oder Vektornorm. |
||
Erzeugen und Zurückgeben einer neuen Matrix aus Einsen. |
||
Berechnet das äußere Produkt von zwei Matrizen oder zwei Vektoren. |
||
Rückgabe des angegebenen Perzentils der Werte von Matrix- bzw. Vektorelementen oder den Elementen entlang der angegebenen Achse. |
||
Berechnung der Pseudoinverse einer Matrix nach der Moore-Penrose-Methode. |
||
Erhöhen einer quadratischen Matrix auf eine ganzzahlige Potenz. |
||
Rückgabe des Produkts von Matrix- oder Vektorelementen, das auch für die angegebene Achse ausgeführt werden kann. |
||
Gibt den Wertebereich einer Matrix bzw. Vektors oder der angegebenen Matrixachse zurück. |
||
Berechnen der qr-Faktorisierung einer Matrix. |
||
Rückgabe des angegebenen Quantils der Werte von Matrix- bzw. Vektorelementen oder Elementen entlang der angegebenen Achse. |
||
Liefert den Rang der Matrix unter Verwendung der Gaußschen Methode. |
||
Berechnet die Regressionsmetrik als Abweichung von der Regressionslinie, die auf dem angegebenen Datenarray konstruiert wurde. |
||
Ändern der Form einer Matrix, ohne ihre Daten zu ändern. |
||
Rückgabe einer neuen Matrix mit geänderter Form und Größe. |
||
Gibt einen Zeilenvektor zurück. Schreiben des Vektors in die angegebene Zeile. |
||
Rückgabe der Anzahl der Zeilen einer Matrix. |
||
Setzt den Wert eines Vektorelements am angegebenen Index. |
||
Rückgabe der Größe des Vektors. |
||
Berechnet das Vorzeichen und den Logarithmus der Determinante einer Matrix. |
||
Lösen einer linearen Matrixgleichung oder eines Systems linearer algebraischer Gleichungen. |
||
Nach einem Platz sortieren. |
||
Berechnung des Spektrums einer Matrix als die Menge ihrer Eigenwerte aus dem Produkt AT*A. |
||
Aufteilen einer Matrix in mehrere Submatrizen. |
||
Gibt die Standardabweichung der Werte von Matrix- bzw. Vektorelementen oder Elementen entlang der angegebenen Achse zurück. |
||
Rückgabe der Summe der Matrix- oder Vektorelemente, die auch für die angegebene Achse (Achsen) ausgeführt werden kann. |
||
Zerlegung in Singulärwerte. |
||
Vertauschen der Spalten in einer Matrix. |
||
Vertauschen der Zeilen in einer Matrix. |
||
Rückgabe der Summe entlang der Diagonalen der Matrix. |
||
Transponieren (Vertauschen der Achsen) und Rückgabe der geänderten Matrix. |
||
Konstruiert eine Matrix mit Einsen auf der angegebenen Diagonalen und darunter und Nullen anderswo. |
||
Gibt die Kopie einer Matrix zurück, bei der die Elemente oberhalb der k-ten Diagonale auf Null gesetzt sind. Untere Dreiecksmatrix. |
||
Gibt die Kopie einer Matrix zurück, bei der die Elemente unterhalb der k-ten Diagonale auf Null gesetzt sind. Obere Dreiecksmatrix. |
||
Berechnung der Varianz der Werte von Matrix- oder Vektorelementen. |
||
Teilt eine Matrix vertikal in mehrere Submatrizen auf. Entspricht Split mit Achse=1 |
||
Erzeugt eine neue, mit Nullen gefüllte Matrix und gibt sie zurück. |