Uma matriz é um array bidimensional de números do tipo double, float ou complex.
Um vetor é uma matriz unidimensional de números do tipo double, float ou complex. O vetor não tem indicação de se é vertical ou horizontal. Essa informação é sabido a partir do contexto de uso, por exemplo, a operação vetorial Dot assume que o vetor esquerdo é horizontal, o vetor direito é vertical. Se for necessária uma precisão absoluta, podem ser usadas matrizes de uma única linha ou coluna, mas geralmente isto não é necessário.
Matrizes e vetores alocam memória para dados dinamicamente. Na verdade, matrizes e vetores são objetos que possuem certas propriedades, como o tipo de dados que contêm e as dimensões. Propriedades de matrizes e vetores podem ser obtidas usando métodos como, vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() e por aí fora. E a dimensão pode ser alterada.
Ao criar e inicializar matrizes, são utilizados os chamados métodos estáticos (estes são como os métodos de classe estática), por exemplo: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix::Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().
No momento, as operações sobre matrizes e vetores não envolvem o uso de um tipo de dado complexo - este ainda é um trabalho em andamento.
MQL5 suporta a passagem de matrizes e vetores para DLLs. Assim, funções que usam esse tipo de dados são importadas a partir de bibliotecas externas.
Matrizes e vetores são passados para DLL como um ponteiro para um buffer. Por exemplo, para passar uma matriz do tipo float, o parâmetro correspondente da função DLL exportada deve levar um ponteiro para um buffer do 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 um processamento adequado de matrizes e vetores, além de seus buffers, devem ser passados seus tamanhos.
Todos os métodos matriciais e vetoriais estão listados abaixo em ordem alfabética.
Função |
Ação |
Categoria |
|---|---|---|
Calcula os valores da função de ativação e registra no vetor/matriz passado |
||
Retorna o índice do valor máximo |
||
Retorna o índice do valor mínimo |
||
Retorna o índice classificado |
||
Copia uma matriz, vetor ou array com conversão automática |
||
Calcula a média ponderada dos valores da matriz/vetor |
||
Calcula a decomposição de Cholesky |
||
Calcula uma métrica de classificação para avaliar a qualidade dos dados previstos em relação aos dados reais. O método é aplicado a um vetor de valores previstos. |
||
Calcula uma métrica de classificação para avaliar a qualidade dos dados previstos em relação aos dados reais. |
||
Limita os elementos de uma matriz/vetor a um determinado intervalo de valores válidos |
||
Retorna um vetor coluna. Grava um vetor na coluna especificada |
||
Retorna o número de colunas em uma matriz |
||
Compara os elementos de duas matrizes/vetores com uma determinada precisão |
||
Compara se os elementos de duas matrizes/vetores correspondem, levando em conta dígitos significativos |
||
Executa uma comparação absoluta de duas matrizes, transformando suas linhas sequenciais em vetores unidimensionais. |
||
Une 2 submatrizes em uma matriz. Une 2 vetores em um só. |
||
Calcula o número condicional de uma matriz |
||
Calcula a matriz de erros. O método é aplicado a um vetor de valores previstos. |
||
Calcula a matriz de erros para cada rótulo. O método é aplicado a um vetor de valores previstos. |
||
Changing the sign of the imaginary part of a complex number, return the modified matrix or vector. |
||
Retorna a convolução linear discreta de dois vetores |
||
Retorna uma cópia da matriz/vetor fornecida |
||
Obtém no vetor dados do buffer especificado do indicador especificado com a quantidade indicada |
||
Obtém em uma matriz ou vetor a série histórica da estrutura MqlRates do período-símbolo especificado na quantidade especificada |
||
Obtém na matriz ou vetor os ticks a partir da estrutura MqlTick |
||
Obtém na matriz ou vetor os ticks a partir da estrutura MqlTick dentro do intervalo de datas especificado |
||
Calcula o coeficiente de correlação de Pearson (coeficiente de correlação linear) |
||
Calcula a correlação cruzada de dois vetores |
||
Calcula a matriz de covariância |
||
Retorna o produto cumulativo dos elementos de uma matriz/vetor, incluindo os elementos ao longo do eixo dado |
||
Retorna a soma cumulativa dos elementos de uma matriz/vetor, incluindo elementos ao longo de um determinado eixo |
||
Calcula os valores da derivada da função de ativação e escreve no vetor/matriz passado |
||
Calcula o determinante de uma matriz quadrada não degenerada |
||
Extrai uma diagonal ou constrói uma matriz diagonal |
||
Produto escalar de dois vetores |
||
Calcula os valores próprios e os vetores próprios direitos de uma matriz quadrada |
||
Calcula os valores próprios de uma matriz comum |
||
Retorna uma matriz com uns na diagonal e zeros nos outros lugares |
||
Preenche uma matriz ou vetor existente com o valor fornecido |
||
Permite acessar um elemento da matriz por meio de um índice em vez de dois |
||
Altera o tamanho de uma matriz ou vetor para zero e libera o buffer de dados associado. |
||
Cria e retorna uma nova matriz preenchida com o valor fornecido |
||
Produto matricial geral de duas matrizes (General Matrix Multiply) |
||
Retorna o número de valores NaN na matriz/vetor |
||
Divisão horizontal de uma matriz em várias submatrizes. O mesmo que Split com axis=0 |
||
Cria uma matriz de identidade do tamanho especificado |
||
Inicialização de matriz ou vetor |
||
Produto interno de duas matrizes |
||
Calcula o inverso (multiplicativo) de uma matriz quadrada não degenerada usando o método Gauss-Jordan |
||
Check if a square matrix is diagonal. |
||
Check if a square complex matrix is Hermitian. |
||
Check if a square matrix is lower bidiagonal. |
||
Check if a square matrix is lower Hessenberg matrix. |
||
Verifica se uma matriz retangular (não quadrada) m por n é trapezoidal inferior. |
||
Check if a square matrix is lower triangular. |
||
Check if a square matrix is scalar matrix. |
||
Check if a square matrix is symmetric. |
||
Check if a square matrix is tridiagonal. |
||
Check if a square matrix is upper bidiagonal. |
||
Check if a square matrix is upper Hessenberg matrix. |
||
Verifica se uma matriz retangular (não quadrada) m por n é trapezoidal superior. |
||
Check if a square matrix is upper triangular. |
||
Retorna o produto Kronecker de duas matrizes, uma matriz e um vetor, um vetor e uma matriz ou dois vetores |
||
Calcula o vetor/matriz com os valores de regressão linear calculados |
||
Calcula os valores da função de perda e grava no vetor/matriz passado |
||
Calcula o vetor ou a matriz de gradiente da função de perda. |
||
Retorna a solução de mínimos quadrados de equações algébricas lineares (para matrizes não quadradas ou singulares) |
||
Decomposição LU de uma matriz como um produto de uma matriz triangular inferior e uma matriz triangular superior |
||
Fatorização LUP com permutação parcial, que se refere à decomposição LU apenas com permutação de linhas: PA=LU |
||
Produto de matriz de duas matrizes |
||
O método analisa o conteúdo da matriz, determina seu tipo estrutural (simétrica, hermitiana, triangular, em banda e assim por diante) e preenche a estrutura MqlMatrixInfo. |
||
Retorna o valor máximo em uma matriz/vetor |
||
Calcula a média aritmética dos valores dos elementos |
||
Calcula a mediana dos elementos de uma matriz/vetor |
||
Retorna o valor mínimo em uma matriz/vetor |
||
Retorna a norma de uma matriz ou vetor |
||
Arredonda os elementos da matriz/vetor para a precisão especificada. Para números complexos, as partes real e imaginária são normalizadas separadamente. Retorna a matriz/vetor com os elementos normalizados. |
||
Cria e retorna uma nova matriz preenchida com uns |
||
Calcula o produto externo de duas matrizes ou dois vetores |
||
Retorna o percentil especificado de valores de elemento de matriz/vetor ou elementos ao longo do eixo especificado |
||
Calcula o pseudoinverso pelo método Moore-Penrose |
||
Eleva uma matriz quadrada a uma potência inteira |
||
Calcula os valores para traçar a curva precision-recall. Esse método, assim como o método ClassificationScore, é aplicado a um vetor de valores verdadeiros. |
||
Prints matrix contents to the Experts log. |
||
Retorna o produto dos elementos da matriz/vetor, que também pode ser realizado para o eixo dado |
||
Retorna o intervalo de valores de uma matriz/vetor ou um determinado eixo de uma matriz |
||
Calcula a fatoração qr de uma matriz |
||
Retorna o quantil especificado dos valores dos elementos da matriz/vetor ou dos elementos ao longo do eixo especificado |
||
Função estática. Cria e retorna uma nova matriz ou vetor preenchido com valores aleatórios. Os valores aleatórios são gerados uniformemente dentro do intervalo especificado. |
||
Retorna o posto de uma matriz usando o método de Gauss |
||
The method reads a matrix or a vector from a file written by the Write method. |
||
The method reads a matrix or a vector from a file written by the WriteBin method. |
||
The method reads a matrix or a vector from a file written by the WriteCSV method. |
||
Calcula os valores para traçar a curva Receiver Operating Characteristic (ROC). Esse método, assim como o método ClassificationScore, é aplicado a um vetor de valores verdadeiros. |
||
Calcula a métrica de regressão como o erro de desvio da linha de regressão criada na matriz de dados especificada |
||
Substitui NaN na matriz/vetor por um novo valor e retorna o número de elementos substituídos. |
||
Substitui valores pequenos na matriz/vetor por zero e retorna a quantidade de elementos substituídos. |
||
Alteração da forma de uma matriz sem alterar seus dados |
||
Retorna uma nova matriz com forma e tamanho modificados |
||
Retorna um vetor linha. Grava um vetor na string especificada |
||
Retorna o número de linhas em uma matriz |
||
Define o valor de um elemento vetorial pelo índice especificado |
||
Retorna o tamanho do vetor |
||
Calcula o sinal e o logaritmo do determinante de uma matriz |
||
Resolve uma equação de matriz linear ou um sistema de equações algébricas lineares |
||
Classificação por lugar |
||
Calcula o espectro de uma matriz como o conjunto de seus autovalores do produto AT*A |
||
Divisão de uma matriz em várias submatrices |
||
Retorna o desvio padrão dos valores dos elementos de uma matriz/vetor ou elementos ao longo de um determinado eixo |
||
Retorna a soma dos elementos da matriz/vetor, o que também pode ser feito para o(s) eixo(s) especificado(s) |
||
Decomposição em valores singulares |
||
Troca os buffers entre matrizes, vetores e arrays dinâmicos do mesmo tipo. |
||
Troca colunas em uma matriz |
||
Troca linhas em uma matriz |
||
Retorna a soma das diagonais de uma matriz |
||
Transpõe (inverte os eixos) e retorna a matriz modificada |
||
Transposição de uma matriz complexa com conjugação. Desenvolve ou reorganiza os eixos da matriz alterando o sinal da parte imaginária dos números complexos, retornando a matriz modificada. |
||
Constrói uma matriz com uns em uma determinada diagonal e abaixo, e zeros nos outros lugares |
||
Retorna uma cópia da matriz zerada acima da k-ésima diagonal. Matriz triangular inferior |
||
Retorna uma cópia da matriz com elementos zerados abaixo da k-ésima diagonal Matriz triangular superior |
||
Calcula a variância dos valores dos elementos de uma matriz/vetor |
||
Divisão vertical de uma matriz em várias submatrizes. O mesmo que Split com axis=1 |
||
The method analyzes the matrix contents, determines its structural type (symmetric, Hermitian, triangular, banded, and so on), and writes the contents of the matrix to the open file in accordance with the selected storage method. |
||
The method writes a matrix or a vector to a file according to its size and type. |
||
The method writes a matrix or a vector to a file according to its size and type. |
||
Cria e retorna uma nova matriz preenchida com zeros |