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 flags, matrix<float> &C, const matrix<float> &A, const matrix<float> &B, ulong M, ulong N, ulong K, float alpha, float beta);
#import

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

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

ClassificationMetric

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.

Aprendizado de máquina

ClassificationScore

Calcula uma métrica de classificação para avaliar a qualidade dos dados previstos em relação aos dados reais.

Aprendizado de máquina

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

CompareEqual

Executa uma comparação absoluta de duas matrizes, transformando suas linhas sequenciais em vetores unidimensionais.

Atribuições

Concat

Une 2 submatrizes em uma matriz. Une 2 vetores em um só.

Atribuições

Cond

Calcula o número condicional de uma matriz

Características

ConfusionMatrix

Calcula a matriz de erros. O método é aplicado a um vetor de valores previstos.

Aprendizado de máquina

ConfusionMatrixMultilabel

Calcula a matriz de erros para cada rótulo. O método é aplicado a um vetor de valores previstos.

Aprendizado de máquina

Conjugate

Changing the sign of the imaginary part of a complex number, return the modified matrix or vector.

Atribuições

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

Free

Altera o tamanho de uma matriz ou vetor para zero e libera o buffer de dados associado.

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

IsDiagonal

Check if a square matrix is diagonal.

Classificação de Matrizes

IsHermitian

Check if a square complex matrix is Hermitian.

Classificação de Matrizes

IsLowerBidiagonal

Check if a square matrix is lower bidiagonal.

Classificação de Matrizes

IsLowerHessenberg

Check if a square matrix is lower Hessenberg matrix.

Classificação de Matrizes

IsLowerTrapezoidal

Verifica se uma matriz retangular (não quadrada) m por n é trapezoidal inferior.

Classificação de Matrizes

IsLowerTriangular

Check if a square matrix is lower triangular.

Classificação de Matrizes

IsScalar

Check if a square matrix is scalar matrix.

Classificação de Matrizes

IsSymmetric

Check if a square matrix is symmetric.

Classificação de Matrizes

IsTridiagonal

Check if a square matrix is tridiagonal.

Classificação de Matrizes

IsUpperBidiagonal

Check if a square matrix is upper bidiagonal.

Classificação de Matrizes

IsUpperHessenberg

Check if a square matrix is upper Hessenberg matrix.

Classificação de Matrizes

IsUpperTrapezoidal

Verifica se uma matriz retangular (não quadrada) m por n é trapezoidal superior.

Classificação de Matrizes

IsUpperTriangular

Check if a square matrix is upper triangular.

Classificação de Matrizes

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

LossGradient

Calcula o vetor ou a matriz de gradiente da função de perda.

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

MatrixInfo

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.

Classificação de Matrizes

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

NormalizarDouble

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.

Atribuições

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

PrecisionRecall

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.

Aprendizado de máquina

Print

Prints matrix contents to the Experts log.

Write and Read

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

Random

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.

Inicialização

Rank

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

Características

Read

The method reads a matrix or a vector from a file written by the Write method.

Write and Read

ReadBin

The method reads a matrix or a vector from a file written by the WriteBin method.

Write and Read

ReadCSV

The method reads a matrix or a vector from a file written by the WriteCSV method.

Write and Read

ReceiverOperatingCharacteristic

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.

Aprendizado de máquina

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

ReplaceNan

Substitui NaN na matriz/vetor por um novo valor e retorna o número de elementos substituídos.

Atribuições

ReplaceToZero

Substitui valores pequenos na matriz/vetor por zero e retorna a quantidade de elementos substituídos.

Atribuições

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

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

Swap

Troca os buffers entre matrizes, vetores e arrays dinâmicos do mesmo tipo.

Atribuiçõ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

TransposeConjugate

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.

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

Write

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.

Write and Read

WriteBin

The method writes a matrix or a vector to a file according to its size and type.

Write and Read

WriteCSV

The method writes a matrix or a vector to a file according to its size and type.

Write and Read

Zeros

Cria e retorna uma nova matriz preenchida com zeros

Inicialização