- Tipos de matrices y vectores
- Inicialización
- Manipulación
- Operaciones
- Productos
- Transformación
- Estadísticas
- Características
- Soluciones
- Aprendizaje automático
- OpenBLAS
Matrices y vectores
Una matriz es un array bidimensional de números double, float o complex.
Un vector es un array unidimensional de números double, float o complex. Al mismo tiempo, el vector no tiene signo sobre si es vertical u horizontal. Se determina partiendo del contexto de uso, por ejemplo, la operación vectorial Dot asume que el vector izquierdo es horizontal y el vector derecho es vertical. Si necesitamos una certeza absoluta, es posible usar matrices de una fila o de una columna, pero, en general, esto no resulta necesario.
Las matrices y vectores asignan la memoria para los datos dinámicamente. De hecho, las matrices y vectores son objetos que tienen ciertas propiedades, como el tipo de datos que contienen y las dimensiones. Las propiedades de las matrices y vectores se pueden obtener usando métodos como vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond(), etc. En este caso, podremos cambiar cualquier dimensionalidad.
Al crear e inicializar matrices, se usan los llamados métodos estáticos (son como métodos estáticos de una clase), por ejemplo: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix::Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().
Por el momento, las operaciones con matrices y vectores no implican el uso del tipo de datos complejo; aún no se ha completado el trabajo en este plano.
MQL5 admite la transmisión de matrices y vectores a DLL. Esto permite que las funciones que usan este tipo de datos se importen desde bibliotecas externas.
Las matrices y vectores se transmiten a la DLL como el puntero a un búfer. Por ejemplo, para transmitir una matriz de tipo float, el parámetro correspondiente de la función DLL exportada deberá adoptar el puntero a un búfer de tipo 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) |
Para procesar correctamente las matrices y vectores, además de sus búferes, es necesario transmitir sus tamaños.
Todos los métodos matriciales y vectoriales se enumeran a continuación en orden alfabético.
Función |
Acción |
Categoría |
---|---|---|
Calcula los valores de la función de activación y los escribe en el vector/matriz trasmitido |
||
Retorna el índice del valor máximo |
||
Retorna el índice del valor mínimo |
||
Retorna el índice clasificado |
||
Copia una matriz, vector o array con transformación automática |
||
Calcula la media ponderada de valores de matriz/vector |
||
Calcula la descomposición de Cholesky |
||
Limita los elementos de una matriz/vector a un rango dado de valores válidos |
||
Retorna un vector de columna. Escribe un vector en la columna especificada |
||
Retorna el número de columnas en la matriz |
||
Compara los elementos de dos matrices/vectores con una precisión determinada |
||
Compara si los elementos de dos matrices/vectores coinciden con una precisión de dígitos significativos |
||
Calcula el número condicional de la matriz |
||
Retorna la convolución lineal discreta de dos vectores |
||
Retorna la copia de una matriz/vector dado |
||
Obtiene en un vector los datos del búfer indicado del indicador especificado en la cantidad especificada |
||
Obtiene las series históricas de la estructura MqlRates en una matriz o vector del símbolo-periodo especificado en la cantidad especificada. |
||
Obtiene en una matriz o vector los ticks de la estructura MqlTick |
||
Obtiene en una matriz o vector los ticks de la estructura MqlTick en el intervalo de fechas indicado |
||
Calcula el coeficiente de correlación de Pearson (coeficiente de correlación lineal) |
||
Calcula la correlación cruzada de dos vectores |
||
Calcula la matriz de covarianza |
||
Retorna el producto acumulativo de los elementos de una matriz/vector incluidos los elementos a lo largo de un eje determinado |
||
Retorna la suma acumulativa de los elementos de una matriz/vector incluidos los elementos a lo largo de un eje determinado |
||
Calcula los valores de la derivada de la función de activación y los escribe en el vector/matriz transmitido |
||
Calcula el determinante de una matriz cuadrada no degenerada |
||
Extrae una diagonal o construye una matriz diagonal |
||
Producto escalar de dos vectores |
||
Calcula los valores propios y los vectores propios derechos de una matriz cuadrada |
||
Calcula los valores propios de la matriz global |
||
Retorna una matriz con unidades en la diagonal y ceros en el resto de sitios |
||
Rellena una matriz o vector existente con el valor dado |
||
Permite referirse a un elemento de la matriz usando un único índice en lugar de dos |
||
Crea y retorna una nueva matriz rellenada con el valor dado |
||
Producto matricial total de dos matrices (General Matrix Multiply) |
||
Retorna el número de valores NaN en una matriz/vector |
||
Partición horizontal de una matriz en varias submatrices. Lo mismo que Split con axis=0 |
||
Crea una matriz unitaria con el tamaño especificado |
||
Inicialización de una matriz o un vector |
||
Producto interior de dos matrices |
||
Calcula la inversa (multiplicativa) de una matriz cuadrada no degenerada usando el método de Jordan-Gauss. |
||
Retorna el producto de Kronecker de dos matrices, una matriz y un vector, un vector y una matriz o dos vectores |
||
Calcula un vector/matriz con los valores de regresión lineal calculados |
||
Calcula los valores de la función de pérdida y los escribe en el vector/matriz trasmitido |
||
Retorna la solución de ecuaciones algebraicas lineales según el método de los mínimos cuadrados (para matrices no cuadradas o degeneradas) |
||
Factorización LU de una matriz como producto de una matriz triangular inferior y una matriz triangular superior |
||
Factorización LUP con permutación parcial que se refiere a la descomposición LU solo con permutación de cadenas: PA=LU |
||
Producto matricial de dos matrices |
||
Retrona el valor máximo de la matriz/vector |
||
Calcula la media aritmética de los valores de los elementos |
||
Calcula la mediana de los elementos de la matriz/vector |
||
Retorna el valor mínimo de la matriz/vector |
||
Retorna la norma de una matriz o vector |
||
Crea y retorna una nueva matriz rellenada con unidades |
||
Calcula el producto exterior de dos matrices o dos vectores |
||
Retorna el percentil especificado de los valores o elementos de la matriz/vector a lo largo del eje especificado |
||
Calcula una matriz pseudoinversa según el método de Moore-Penrose |
||
Eleva una matriz cuadrada a una potencia entera |
||
Retorna el producto de los elementos de una matriz/vector, que también puede ejecutarse para un eje dado |
||
Retorna el rango de valores de una matriz/vector o un eje de la matriz dado |
||
Calcula la factorización QR de una matriz |
||
Retorna el cuantil especificado de los valores de los elementos de la matriz/vector o los elementos a lo largo del eje especificado |
||
Retorna el rango de una matriz utilizando el método de Gauss |
||
Calcula la métrica de regresión como el error de desviación respecto a la línea de regresión trazada en el conjunto de datos especificado. |
||
Cambia la forma de una matriz sin modificar sus datos |
||
Retorna una nueva matriz con la forma y el tamaño modificados |
||
Devuelve un vector de filas. Escribe el vector en la fila especificada |
||
Retorna el número de filas en la matriz |
||
Establece el valor para el elemento del vector según el índice especificado |
||
Retorna el tamaño del vector |
||
Calcula el signo y el logaritmo del determinante de la matriz |
||
Resuelve una ecuación matricial lineal o un sistema de ecuaciones algebraicas lineales |
||
Clasificación según el lugar |
||
Calcula el espectro de una matriz como el conjunto de sus valores propios partiendo del producto AT*A |
||
Partición de una matriz en varias submatrices |
||
Retorna la desviación estándar de los valores o elementos de la matriz/vector a lo largo de un eje determinado |
||
Retorna la suma de los elementos de una matriz/vector que también se puede ejecutar para un eje(s) dado(s) |
||
Descomposición singular de valores |
||
Intercambia las columnas de la matriz |
||
Intercambia las filas de la matriz |
||
Retorna la suma según las diagonales de la matriz |
||
Transforma (intercambia los ejes) y retorna una matriz modificada |
||
Construye una matriz con unidades en las diagonales especificada e inferior y ceros en el resto |
||
Retorna una copia de la matriz con los elementos a cero sobre la k-ésima diagonal. Matriz triangular inferior |
||
Retorna una copia de la matriz con los elementos a cero por debajo de la k-ésima diagonal. Matriz triangular superior |
||
Calcula la varianza de los valores de los elementos de la matriz/vector |
||
Partición vertical de una matriz en varias submatrices. Lo mismo que Split con axis=1 |
||
Crea y retorna una nueva matriz rellenada con ceros |