Matrizes e vetores
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 | ||
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 | ||
Calcula o número condicional de uma matriz | ||
Retorna a convolução linear discreta de dois vetores | ||
Retorna uma cópia da matriz/vetor fornecida | ||
Une 2 submatrizes em uma matriz. Une 2 vetores em um só. | ||
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 | ||
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 | ||
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 | ||
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 | ||
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 | ||
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 | ||
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 | ||
Calcula a métrica de regressão como o erro de desvio da linha de regressão criada na matriz de dados especificada | ||
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 | ||
Define o valor de um elemento vetorial pelo índice especificado | ||
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 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 | ||
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 | ||
Cria e retorna uma nova matriz preenchida com zeros |