- Types de matrice et de vecteur
- Initialisation
- Manipulations
- Opérations
- Products
- Transformations
- Statistiques
- Fonctionnalités
- Solutions
- Machine learning
- OpenBLAS
Matrices et vecteurs
Une matrice est un tableau à 2 dimensions d'éléments doubles, flottants ou complexes.
Un vecteur est un tableau à 1 dimension d'éléments doubles, flottants ou complexes. Le vecteur n'a aucune indication sur le fait qu'il soit vertical ou horizontal. Cela est déterminé à partir du contexte d'utilisation. Par exemple, l'utilisation du vecteur Dot assume que le vecteur de gauche est horizontal et que le vecteur de droite est vertical. Si l'indication du type est requise, une matrice à 1 ligne ou à 1 colonne peut être utilisée. Cependant, ce n'est généralement pas nécessaire.
Les matrices et les vecteurs allouent dynamiquement de la mémoire pour les données. En fait, les matrices et les vecteurs sont des objets qui ont certaines propriétés, telles que le type de données qu'ils contiennent et les dimensions. Les propriétés de matrice et de vecteur peuvent être obtenues à l'aide de méthodes telles que vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() et autres. Toutes les dimensions peuvent être modifiées.
Lors de la création et de l'initialisation des matrices, des méthodes dites statiques sont utilisées (elles sont comme les méthodes statiques d'une classe). Par exemple : matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix::Zeros(), vector::Zeros(), matrix::Full( ), vector::Full(), matrix::Tri().
Pour le moment, les opérations matricielles et vectorielles n'impliquent pas l'utilisation du type de données complexe, car cette direction de développement n'est pas encore terminée.
MQL5 prend en charge le passage de matrices et de vecteurs aux DLL. Cela permet l'importation de fonctions utilisant les types pertinents, à partir de variables externes.
Les matrices et les vecteurs sont transmis à une DLL en tant que pointeur vers un buffer. Par exemple, pour passer une matrice de type float, le paramètre correspondant de la fonction exportée depuis la DLL doit prendre un pointeur de buffer de type float.
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) |
En plus des buffers, vous devez transmettre des tailles de matrice et de vecteur pour un traitement correct.
Toutes les méthodes matricielles et vectorielles sont répertoriées ci-dessous par ordre alphabétique.
Fonction |
Action |
Catégorie |
---|---|---|
Calcule les valeurs de la fonction d'activation et les écrit dans le vecteur/matrice passé |
||
Renvoie l'indice de la valeur maximale |
||
Renvoie l'indice de la valeur minimale |
||
Renvoie l'index trié |
||
Copie une matrice, un vecteur ou un tableau avec une distribution automatique |
||
Calcule la moyenne pondérée des valeurs de matrice/vecteur |
||
Calcule la décomposition de Cholesky |
||
Limite les éléments d'une matrice/vecteur à une plage donnée de valeurs valides |
||
Renvoie un vecteur colonne. Ecrit un vecteur dans la colonne spécifiée. |
||
Retourne le nombre de colonnes d'une matrice |
||
Compare les éléments de deux matrices/vecteurs avec la précision spécifiée |
||
Compare les éléments de deux matrices/vecteurs avec la précision des chiffres significatifs |
||
Calcule le conditionnement d'une matrice |
||
Renvoie la convolution discrète et linéaire de deux vecteurs |
||
Renvoie une copie de la matrice/du vecteur donné |
||
Retourne la quantité spécifiée de données du buffer spécifié de l'indicateur vers un vecteur |
||
Récupère la série historique de la structure MqlRates pour le symbole et la période spécifiés, avec le nombre spécifié d'éléments dans une matrice ou un vecteur |
||
Récupère les ticks d'une structure MqlTick dans une matrice ou un vecteur |
||
Récupère les ticks d'une structure MqlTick dans une matrice ou un vecteur dans la plage de dates spécifiée |
||
Calcul du coefficient de corrélation de Pearson (coefficient de corrélation linéaire) |
||
Calcul de la corrélation croisée de deux vecteurs |
||
Calcul de la matrice de covariance |
||
Renvoie le produit cumulé des éléments de matrice/vecteur, y compris ceux le long de l'axe donné |
||
Renvoie la somme cumulée des éléments de matrice/vecteur, y compris ceux le long de l'axe donné |
||
Calcule les valeurs dérivées de la fonction d'activation et les écrit dans le vecteur/matrice passé |
||
Calcule le déterminant d'une matrice carrée inversible |
||
Extrait une diagonale ou construit une matrice diagonale |
||
Produit scalaire de deux vecteurs |
||
Calcule les valeurs propres et les vecteurs propres droits d'une matrice carrée |
||
Calcule les valeurs propres d'une matrice générale |
||
Renvoie une matrice avec des 1 sur la diagonale et des 0 ailleurs |
||
Remplit une matrice ou un vecteur existant avec la valeur spécifiée |
||
Accès à un élément de la matrice via un index au lieu de deux |
||
Crée et retourne une nouvelle matrice remplie avec la valeur donnée |
||
La méthode GeMM (General Matrix Multiply) implémente la multiplication générale de deux matrices |
||
Retourne le nombre de valeurs NaN dans une matrice/un vecteur |
||
Divise une matrice horizontalement en plusieurs sous-matrices. Similaire à Split avec axis=0 |
||
Crée une matrice d'identité de la taille spécifiée |
||
Initialisation matricielle ou vectorielle |
||
Produit interne de deux matrices |
||
Calcule l'inverse multiplicatif d'une matrice carrée inversible par la méthode de Jordan-Gauss |
||
Calcul du produit de Kronecker de deux matrices, matrice et vecteur, vecteur et matrice ou deux vecteurs |
||
Calcule un vecteur/une matrice avec des valeurs de régression linéaire calculées |
||
Calcule les valeurs de la fonction de perte et les écrit dans le vecteur/matrice passé |
||
Renvoie la solution des moindres carrés des équations algébriques linéaires (pour les matrices non carrées ou dégénérées) |
||
Implémente une décomposition LU d'une matrice : le produit d'une matrice triangulaire inférieure et d'une matrice triangulaire supérieure |
||
Implémente une factorisation LUP avec permutation partielle, qui fait référence à la décomposition LU avec permutations de lignes uniquement : PA=LU |
||
Produit matriciel de deux matrices |
||
Renvoie la valeur maximale dans une matrice/vecteur |
||
Calcule la moyenne arithmétique des valeurs des éléments |
||
Calcule la médiane des éléments matrice/vecteur |
||
Renvoie la valeur minimale dans une matrice/vecteur |
||
Retourne la norme d'une matrice ou d'un vecteur |
||
Crée et renvoit une nouvelle matrice remplie de 1 |
||
Produit extérieur de deux matrices ou de deux vecteurs |
||
Renvoie le centile spécifié des valeurs des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié |
||
Calcule la pseudo-inverse d'une matrice par la méthode de Moore-Penrose |
||
Élevation d'une matrice carrée à une puissance entière |
||
Renvoie le produit des éléments matrice/vecteur, qui peut également être exécuté pour l'axe donné |
||
Renvoie la plage de valeurs d'une matrice/vecteur ou de l'axe de matrice donné |
||
Calcule la factorisation qr d'une matrice |
||
Renvoie le quantile spécifié des valeurs des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié |
||
Renvoie le rang de la matrice à l'aide de la méthode Gaussienne |
||
Calculer la métrique de régression en tant qu'erreur d'écart par rapport à la ligne de régression construite sur le tableau de données spécifié |
||
Modifie la forme d'une matrice sans modifier ses données |
||
Renvoie une nouvelle matrice avec une forme et une taille modifiées |
||
Renvoie un vecteur ligne. Ecrit le vecteur dans la ligne spécifiée |
||
Retourne le nombre de lignes d'une matrice |
||
Définit la valeur de l'élément d'un vecteur en spécifiant son indice |
||
Retourne la taille d'un vecteur |
||
Calcule le signe et le logarithme du déterminant d'une matrice |
||
Résout une équation matricielle linéaire ou un système d'équations algébriques linéaires |
||
Trier en place |
||
Calcule le spectre d'une matrice comme l'ensemble de ses valeurs propres du produit AT*A |
||
Divise une matrice en plusieurs sous-matrices |
||
Renvoie l'écart type des valeurs des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié |
||
Renvoie la somme des éléments de matrice/vecteur, qui peuvent également être exécutés pour l'axe (les axes) donné(s) |
||
Décomposition en valeurs singulières |
||
Echange des colonnes dans une matrice |
||
Échange des lignes dans une matrice |
||
Retourne la somme des diagonales d'une matrice |
||
Transpose (échanger les axes) et renvoit la matrice modifiée |
||
Construit une matrice avec des 1 sur une diagonale spécifiée et en dessous, et des 0 ailleurs |
||
Renvoie une copie d'une matrice avec des éléments au-dessus de la k-ième diagonale mis à 0. Matrice triangulaire inférieure |
||
Renvoie une copie d'une matrice avec les éléments sous la k-ième diagonale mis à 0. Matrice triangulaire supérieure |
||
Calcule la variance des valeurs des éléments de matrice/vecteur |
||
Divise verticalement une matrice en plusieurs sous-matrices. Identique à Split avec axis=1 |
||
Crée et renvoit une nouvelle matrice remplie de 0 |