- Tipi di matrice e vettore
- Initialization
- Manipolazioni
- Operazioni
- Prodotti
- Trasformazioni
- Statistica
- Caratteristiche
- Soluzioni
- Machine learning
- OpenBLAS
Matrici e vettori
Una matrice è un array bidimensionale di numeri di tipo double,float, o complex.
Un vettore è un array unidimensionale di numeri di tipo double, float o complex. Il vettore non ha alcuna indicazione se sia verticale o orizzontale. È determinato dal contesto d'uso. Ad esempio, l'operazione vettoriale Dot presuppone che il vettore sinistro sia orizzontale e quello destro verticale. Se è richiesta l'indicazione del tipo, è possibile utilizzare matrici a una riga o a una colonna. Tuttavia, questo non è generalmente necessario.
Matrici e vettori allocano dinamicamente la memoria per i dati. Infatti, matrici e vettori sono oggetti che hanno determinate proprietà, come il tipo di dati che contengono e le dimensioni. Le proprietà della matrice e del vettore possono essere ottenute utilizzando metodi come vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() e altri. Qualsiasi dimensione può essere cambiata.
Quando si creano e inizializzano le matrici, vengono utilizzati i cosiddetti metodi statici (questi sono come i metodi statici di una classe). Per esempio: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix: :Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().
Al momento, le operazioni matriciali e vettoriali non implicano l'uso del tipo di dati complex, poiché questa direzione di sviluppo non è ancora stata completata.
MQL5 supporta il passaggio di matrici e vettori a DLL. Questo permette l'importazione di funzioni che utilizzano i tipi corrispondenti, da variabili esterne.
Matrici e vettori sono passati a una DLL come puntatore a un buffer. Ad esempio, per passare una matrice di tipo float, il parametro corrispondente della funzione esportata dalla DLL deve avere un puntatore ad un buffer di 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) |
Oltre ai buffer, dovresti passare le dimensioni della matrice e del vettore per una corretta elaborazione.
Tutti i metodi matriciali e vettoriali sono elencati di seguito in ordine alfabetico.
Funzione |
Azione |
Categoria |
---|---|---|
Calcola i valori della funzione di attivazione e li scrive sul vettore/matrice passato |
||
Restituisce l'indice del valore massimo |
||
Restituisce l'indice del valore minimo |
||
Restituisce l'indice ordinato |
||
Copia una matrice, vettore o array con auto cast |
||
Calcola la media ponderata dei valori della matrice/vettore |
||
Calcola la decomposizione di Cholesky |
||
Limita gli elementi di una matrice/vettore ad un determinato intervallo di valori validi |
||
Restituisce la colonna di un vettore. Scrive un vettore nella colonna specificata. |
||
Restituisce il numero di colonne in una matrice |
||
Confronta gli elementi di due matrici/vettori con la precisione specificata |
||
Confronta gli elementi di due matrici/ vettori con la precisione di cifre importanti |
||
Calcola il numero di condizione di una matrice |
||
Restituisce la discreta, convoluzione lineare di due vettori |
||
Restituisce una copia della matrice/vettore dato |
||
Ottiene i dati del buffer dell'indicatore specificato nella quantità specificata in un vettore |
||
Ottiene la serie storica della struttura MqlRates del periodo-simbolo specificato nella quantità specificata in una matrice o vettore |
||
Ottiene i tick da una struttura MqlTick in una matrice o un vettore |
||
Ottiene i tick da una struttura MqlTick in una matrice o un vettore entro l'intervallo di date specificato |
||
Calcola il coefficiente di correlazione di Pearson (coefficiente di correlazione lineare) |
||
Calcola la correlazione incrociata di due vettori |
||
Calcola la matrice di covarianza |
||
Restituisce il prodotto cumulativo degli elementi matrice/vettore, compresi quelli lungo l'asse dato |
||
Restituisce la somma cumulativa degli elementi matrice/vettore, compresi quelli lungo l'asse dato |
||
Calcola i valori derivati della funzione di attivazione e li scrive nel vettore/matrice passato |
||
Calcola il determinante di una matrice invertibile quadrata |
||
Estrae una diagonale o costruisce una diagonale della matrice |
||
Prodotto scalare di due vettori |
||
Calcola gli autovalori e gli autovettori destri di una matrice quadrata |
||
Calcola gli autovalori di una matrice generale |
||
Restituisce una matrice con uno sulla diagonale e zero altrove |
||
Riempire una matrice o un vettore esistente con il valore specificato |
||
Accesso a un elemento matrice tramite un indice anziché due |
||
Crea e restituisce una nuova matrice riempita con il valore dato |
||
Il metodo GeMM (General Matrix Multiply) implementa la moltiplicazione generale di due matrici |
||
Restituisce il numero dei valori NaN in una matrice/vettore |
||
Divide una matrice orizzontalmente in più sottomatrici. Stesso di Split con asse=0 |
||
Crea una matrice di identità della dimensione specificata |
||
Inizializzazione di matrice o vettore |
||
Prodotto interno di due matrici |
||
Calcola l'inverso moltiplicativo di una matrice invertibile quadrata con il metodo di Jordan-Gauss |
||
Restituisce il prodotto di Kronecker di due matrici, matrice e vettore, vettore e matrice o due vettori |
||
Calcola un vettore/matrice con i valori di regressione lineare calcolati |
||
Calcola i valori delle funzioni di perdita e li scrive nel vettore/matrice passato |
||
Restituisce la soluzione dei minimi quadrati delle equazioni algebriche lineari (per matrici non quadrate o degenerate) |
||
Implementa una decomposizione LU di una matrice: il prodotto di una matrice triangolare inferiore e di una matrice triangolare superiore |
||
Implementare una fattorizzazione LUP con permutazione parziale, che si riferisce alla decomposizione LU solo con permutazioni di riga: PA=LU |
||
Matrice con il prodotto di due matrici |
||
Restituisce il valore massimo in una matrice/vettore |
||
Calcola la media aritmetica dei valori degli elementi |
||
Calcola la mediana degli elementi matrice/vettore |
||
Restituisce il valore minimo in una matrice/vettore |
||
Restituisce la norma di una matrice o vettore |
||
Crea e restituisce una nuova matrice riempita con uno |
||
Calcola il prodotto esterno di due matrici o due vettori |
||
Restituisce il percentile specificato dei valori degli elementi della matrice/vettore o degli elementi lungo l'asse specificato |
||
Calcola lo pseudo-inverso di una matrice con il metodo di Moore-Penrose |
||
Eleva una matrice quadrata a una potenza intera |
||
Restituisce il prodotto degli elementi matrice/vettore, che possono anche essere eseguiti per l'asse dato |
||
Restituisce l'intervallo di valori di una matrice/vettore o dell'asse della matrice dato |
||
Calcola la fattorizzazione qr di una matrice |
||
Restituisce il quantile specificato dei valori degli elementi della matrice/vettore o degli elementi lungo l'asse specificato |
||
Restituisce il rango di una matrice utilizzando il metodo Gaussiano |
||
Calcola la metrica dei regressori come errore di deviazione dalla linea di regressione costruita sull'array di dati specificato |
||
Modifica la forma di una matrice senza modificare i suoi dati |
||
Restituisce una nuova matrice con forma e dimensione modificata |
||
Restituisce la riga del vettore. Scrive il vettore nella riga specificata |
||
Restituisce il numero di righe in una matrice |
||
Restituisce la dimensione del vettore |
||
Calcola il segno e il logaritmo del determinante di una matrice |
||
Risolve un'equazione matriciale lineare o un sistema di equazioni algebriche lineari |
||
Ordina per posizione |
||
Calcola lo spettro di una matrice come l'insieme dei suoi autovalori dal prodotto AT*A |
||
Divide una matrice in più sottomatrici |
||
Restituisce la deviazione standard dei valori degli elementi della matrice/vettore o degli elementi lungo l'asse specificato |
||
Restituisce la somma degli elementi della matrice/vettore, che possono anche essere eseguiti per l'asse dato (assi) |
||
Decomposizione ai valori singolari |
||
Scambia le colonne in una matrice |
||
Scambia le righe in una matrice |
||
Restituisce la somma sulle diagonali della matrice |
||
Traspone (scambia gli assi) e restituisce la matrice modificata |
||
Costruisce una matrice con uno sulla diagonale specificata e sotto di essa e zeri altrove |
||
Restituisce una copia di una matrice con gli elementi sopra la diagonale k azzerati. Matrice triangolare inferiore |
||
Restituisce una copia di una matrice con gli elementi sotto la diagonale k azzerati. Matrice triangolare superiore |
||
Calcola la varianza dei valori degli elementi della matrice/vettore |
||
Divide una matrice verticalmente in più sottomatrici. Stesso di Split con asse=1 |
||
Crea e restituisce una nuova matrice piena di zeri |