- Tipos de matrizes e vetores
- Inicialização
- Atribuições
- Operações
- Produtos
- Conversões
- Estatísticas
- Características
- Soluções
- Aprendizado de máquina
- OpenBLAS
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 |
||
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 |
||
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 |