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"
bool sgemm(uint flagsmatrix<float> &C, const matrix<float> &A, const matrix<float> &Bulong Mulong Nulong Kfloat alphafloat beta);
#import

C++

extern "C" __declspec(dllexportbool sgemm(UINT flagsfloat *Cconst float *Aconst float *BUINT64 MUINT64 NUINT64 Kfloat alphafloat 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

Activation

Calcula os valores da função de ativação e registra no vetor/matriz passado

Aprendizado de máquina

ArgMax

Retorna o índice do valor máximo

Estatísticas

ArgMin

Retorna o índice do valor mínimo

Estatísticas

ArgSort

Retorna o índice classificado

Atribuições

Assign

Copia uma matriz, vetor ou array com conversão automática

Inicialização

Average

Calcula a média ponderada dos valores da matriz/vetor

Estatísticas

Cholesky

Calcula a decomposição de Cholesky

Conversões

Clip

Limita os elementos de uma matriz/vetor a um determinado intervalo de valores válidos

Atribuições

Col

Retorna um vetor coluna. Grava um vetor na coluna especificada

Atribuições

Cols

Retorna o número de colunas em uma matriz

Características

Compare

Compara os elementos de duas matrizes/vetores com uma determinada precisão

Atribuições

CompareByDigits

Compara se os elementos de duas matrizes/vetores correspondem, levando em conta dígitos significativos

Atribuições

Cond

Calcula o número condicional de uma matriz

Características

Convolve

Retorna a convolução linear discreta de dois vetores

Produtos

Copy

Retorna uma cópia da matriz/vetor fornecida

Atribuições

CopyIndicatorBuffer

Obtém no vetor dados do buffer especificado do indicador especificado com a quantidade indicada

Inicialização

CopyRates

Obtém em uma matriz ou vetor a série histórica da estrutura MqlRates do período-símbolo especificado na quantidade especificada

Inicialização

CopyTicks

Obtém na matriz ou vetor os ticks a partir da estrutura MqlTick

Inicialização

CopyTicksRange

Obtém na matriz ou vetor os ticks a partir da estrutura MqlTick dentro do intervalo de datas especificado

Inicialização

CorrCoef

Calcula o coeficiente de correlação de Pearson (coeficiente de correlação linear)

Produtos

Correlate

Calcula a correlação cruzada de dois vetores

Produtos

Cov

Calcula a matriz de covariância

Produtos

CumProd

Retorna o produto cumulativo dos elementos de uma matriz/vetor, incluindo os elementos ao longo do eixo dado

Estatísticas

CumSum

Retorna a soma cumulativa dos elementos de uma matriz/vetor, incluindo elementos ao longo de um determinado eixo

Estatísticas

Derivative

Calcula os valores da derivada da função de ativação e escreve no vetor/matriz passado

Aprendizado de máquina

Det

Calcula o determinante de uma matriz quadrada não degenerada

Características

Diag

Extrai uma diagonal ou constrói uma matriz diagonal

Atribuições

Dot

Produto escalar de dois vetores

Produtos

Eig

Calcula os valores próprios e os vetores próprios direitos de uma matriz quadrada

Conversões

EigVals

Calcula os valores próprios de uma matriz comum

Conversões

Eye

Retorna uma matriz com uns na diagonal e zeros nos outros lugares

Inicialização

Fill

Preenche uma matriz ou vetor existente com o valor fornecido

Inicialização

Flat

Permite acessar um elemento da matriz por meio de um índice em vez de dois

Atribuições

Full

Cria e retorna uma nova matriz preenchida com o valor fornecido

Inicialização

GeMM

Produto matricial geral de duas matrizes (General Matrix Multiply)

Produtos

HasNan

Retorna o número de valores NaN na matriz/vetor

Atribuições

Hsplit

Divisão horizontal de uma matriz em várias submatrizes. O mesmo que Split com axis=0

Atribuições

Identity

Cria uma matriz de identidade do tamanho especificado

Inicialização

Init

Inicialização de matriz ou vetor

Inicialização

Inner

Produto interno de duas matrizes

Produtos

Inv

Calcula o inverso (multiplicativo) de uma matriz quadrada não degenerada usando o método Gauss-Jordan

Soluções

Kron

Retorna o produto Kronecker de duas matrizes, uma matriz e um vetor, um vetor e uma matriz ou dois vetores

Produtos

LinearRegression

Calcula o vetor/matriz com os valores de regressão linear calculados

Estatísticas

Loss

Calcula os valores da função de perda e grava no vetor/matriz passado

Aprendizado de máquina

LstSq

Retorna a solução de mínimos quadrados de equações algébricas lineares (para matrizes não quadradas ou singulares)

Soluções

LU

Decomposição LU de uma matriz como um produto de uma matriz triangular inferior e uma matriz triangular superior

Conversões

LUP

Fatorização LUP com permutação parcial, que se refere à decomposição LU apenas com permutação de linhas: PA=LU

Conversões

MatMul

Produto de matriz de duas matrizes

Produtos

Max

Retorna o valor máximo em uma matriz/vetor

Estatísticas

Mean

Calcula a média aritmética dos valores dos elementos

Estatísticas

Median

Calcula a mediana dos elementos de uma matriz/vetor

Estatísticas

Min

Retorna o valor mínimo em uma matriz/vetor

Estatísticas

Norm

Retorna a norma de uma matriz ou vetor

Características

Ones

Cria e retorna uma nova matriz preenchida com uns

Inicialização

Outer

Calcula o produto externo de duas matrizes ou dois vetores

Produtos

Percentile

Retorna o percentil especificado de valores de elemento de matriz/vetor ou elementos ao longo do eixo especificado

Estatísticas

PInv

Calcula o pseudoinverso pelo método Moore-Penrose

Soluções

Power

Eleva uma matriz quadrada a uma potência inteira

Produtos

Prod

Retorna o produto dos elementos da matriz/vetor, que também pode ser realizado para o eixo dado

Estatísticas

Ptp

Retorna o intervalo de valores de uma matriz/vetor ou um determinado eixo de uma matriz

Estatísticas

QR

Calcula a fatoração qr de uma matriz

Conversões

Quantile

Retorna o quantil especificado dos valores dos elementos da matriz/vetor ou dos elementos ao longo do eixo especificado

Estatísticas

Rank

Retorna o posto de uma matriz usando o método de Gauss

Características

RegressionMetric

Calcula a métrica de regressão como o erro de desvio da linha de regressão criada na matriz de dados especificada

Estatísticas

Reshape

Alteração da forma de uma matriz sem alterar seus dados

Atribuições

Resize

Retorna uma nova matriz com forma e tamanho modificados

Atribuições

Row

Retorna um vetor linha. Grava um vetor na string especificada

Atribuições

Rows

Retorna o número de linhas em uma matriz

Características

Set

Define o valor de um elemento vetorial pelo índice especificado

Atribuições

Size

Retorna o tamanho do vetor

Características

Set

Define o valor de um elemento vetorial pelo índice especificado

Atribuições

SLogDet

Calcula o sinal e o logaritmo do determinante de uma matriz

Características

Solve

Resolve uma equação de matriz linear ou um sistema de equações algébricas lineares

Soluções

Sort

Classificação por lugar

Atribuições

Spectrum

Calcula o espectro de uma matriz como o conjunto de seus autovalores do produto AT*A

Características

Split

Divisão de uma matriz em várias submatrices

Atribuições

Std

Retorna o desvio padrão dos valores dos elementos de uma matriz/vetor ou elementos ao longo de um determinado eixo

Estatísticas

Sum

Retorna a soma dos elementos da matriz/vetor, o que também pode ser feito para o(s) eixo(s) especificado(s)

Estatísticas

SVD

Decomposição em valores singulares

Conversões

SwapCols

Troca colunas em uma matriz

Atribuições

SwapRows

Troca linhas em uma matriz

Atribuições

Trace

Retorna a soma das diagonais de uma matriz

Características

Transpose

Transpõe (inverte os eixos) e retorna a matriz modificada

Atribuições

Tri

Constrói uma matriz com uns em uma determinada diagonal e abaixo, e zeros nos outros lugares

Inicialização

TriL

Retorna uma cópia da matriz zerada acima da k-ésima diagonal. Matriz triangular inferior

Atribuições

TriU

Retorna uma cópia da matriz com elementos zerados abaixo da k-ésima diagonal Matriz triangular superior

Atribuições

Var

Calcula a variância dos valores dos elementos de uma matriz/vetor

Estatísticas

Vsplit

Divisão vertical de uma matriz em várias submatrizes. O mesmo que Split com axis=1

Atribuições

Zeros

Cria e retorna uma nova matriz preenchida com zeros

Inicialização