Matrisler ve Vektörler

Bir matris, double, float veya complex türünde sayılardan oluşan iki boyutlu bir dizidir.

Bir vektör, double, float veya complex türünde sayılardan oluşan tek boyutlu bir dizidir. Vektörlerin dikey mi yoksa yatay mı olduğuna dair bir işareti yoktur. Kullanım durumuna göre belirlenir. Örneğin, Dot vektör işlemi, soldaki vektörün yatay, sağdaki vektörün ise dikey olduğunu varsayar. Belirli bir yön gerekiyorsa, tek satırlı veya tek sütunlu matrisler kullanılabilir. Ancak genellikle bu gerekli değildir.

Matrisler ve vektörler, veriler için dinamik olarak bellek tahsis eder. Aslında matrisler ve vektörler, büyüklük ve içerdikleri veri türü gibi belirli özelliklere sahip nesnelerdir. Matrislerin ve vektörlerin özellikleri, vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() vb. metotlar kullanılarak elde edilebilir. Ayrıca herhangi bir büyüklük de değiştirilebilir.

Matrisler oluşturulurken ve başlatılırken, statik metotlar kullanılır (bunlar bir sınıfın statik metotları gibidir). Örneğin: matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix::Zeros(), vector::Zeros(), matrix::Full(), vector::Full(), matrix::Tri().

Şu anda, matrisler ve vektörler üzerindeki işlemler, complex veri türünün kullanımını içermemektedir - bu veri türü üzerindeki çalışmalar henüz tamamlanmamıştır.

MQL5, matrislerin ve vektörlerin DLL'lere aktarılmasını destekler. Bu, ilgili veri türlerini kullanan fonksiyonların harici kütüphanelerden içe aktarılmasına olanak sağlar.

Matrisler ve vektörler DLL'e arabellek işaretçisi olarak aktarılır. Örneğin, float türünde bir matrisin aktarılması için, DLL'den dışa aktarılan fonksiyonun ilgili parametresinin float türünde arabellek işaretçisi alması gerekir.

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)

Matrislerin ve vektörlerin düzgün bir şekilde işlenmesi adına, arabelleklere ek olarak büyüklüklerinin de aktarılması gerekir.

Tüm matris ve vektör metotları aşağıda alfabetik sırayla listelenmiştir.

Fonksiyon

Eylem

Kategori

Activation

Aktivasyon fonksiyonu değerlerini hesaplar ve onları aktarılan vektöre/matrise yazar

Makine öğrenimi

ArgMax

Maksimum değerin indeksini geri döndürür

İstatistikler

ArgMin

Minimum değerin indeksini geri döndürür

İstatistikler

ArgSort

Sıralanmış indeksi geri döndürür

Manipülasyonlar

Assign

Otomatik dönüştürmeyle matrisi, vektörü veya diziyi kopyalar

Başlatma

Average

Matris/vektör değerlerinin ağırlıklı ortalamasını hesaplar

İstatistikler

Cholesky

Cholesky ayrışmasını hesaplar

Dönüşümler

Clip

Matrisin/vektörün elemanlarını belirli bir geçerli değerler aralığıyla sınırlar

Manipülasyonlar

Col

Bir sütun vektörü geri döndürür. Belirtilen sütuna vektörü yazar

Manipülasyonlar

Cols

Matristeki sütun sayısını geri döndürür

Özellikler

Compare

Belirtilen hassasiyetle iki matrisin/vektörün elemanlarını karşılaştırır

Manipülasyonlar

CompareByDigits

Anlamlı basamak hassasiyetiyle iki matrisin/vektörün elemanlarını karşılaştırır

Manipülasyonlar

Cond

Matrisin koşul sayısını hesaplar

Özellikler

Convolve

İki vektörün ayrık, lineer konvolüsyonunu geri döndürür

Çarpımlar

Copy

Matrisin/vektörün bir kopyasını geri döndürür

Manipülasyonlar

CopyIndicatorBuffer

Belirtilen gösterge arabelleğinden belirtilen miktarda veriyi vektöre alır

Başlatma

CopyRates

Belirtilen sembol, zaman dilimi ve veri miktarı için MqlRates yapısından matrise veya vektöre geçmiş seriler alır

Başlatma

CopyTicks

MqlTick yapısından matrise veya vektöre tikler alır

Başlatma

CopyTicksRange

Belirtilen tarih aralığı için MqlTick yapısından matrise veya vektöre tikler alır

Başlatma

CorrCoef

Pearson korelasyon katsayısını (lineer korelasyon katsayısı) hesaplar

Çarpımlar

Correlate

İki vektörün çapraz korelasyonunu hesaplar

Çarpımlar

Cov

Kovaryans matrisini hesaplar

Çarpımlar

CumProd

Belirtilen eksen boyunca olanlar da dahil olmak üzere matris/vektör elemanlarının kümülatif çarpımını geri döndürür

İstatistikler

CumSum

Belirtilen eksen boyunca olanlar da dahil olmak üzere matris/vektör elemanlarının kümülatif toplamını geri döndürür

İstatistikler

Derivative

Aktivasyon fonksiyonu türevinin değerlerini hesaplar ve onları aktarılan vektöre/matrise yazar

Makine öğrenimi

Det

Tersinir kare matrisin determinantını hesaplar

Özellikler

Diag

Bir köşegeni çıkarır veya bir köşegen matris oluşturur

Manipülasyonlar

Dot

İki vektörün nokta çarpımı

Çarpımlar

Eig

Kare matrisin özdeğerlerini ve sağ özvektörlerini hesaplar

Dönüşümler

EigVals

Genel matrisin özdeğerlerini hesaplar

Dönüşümler

Eye

Köşegende 1'lerin ve diğer yerlerde 0'ların olduğu bir matris geri döndürür

Başlatma

Fill

Matrisi veya vektörü belirtilen değerle doldurur

Başlatma

Flat

Matris elemanının iki yerine bir indeks aracılığıyla adreslenmesine olanak sağlar

Manipülasyonlar

Full

Belirtilen değerle dolu yeni bir matris oluşturur ve geri döndürür

Başlatma

GeMM

Genel matris çarpımı (General Matrix Multiply, GeMM) yöntemi, iki matrisin genel çarpımını uygular

Çarpımlar

HasNan

Matris/vektördeki NaN değerlerinin sayısını geri döndürür

Manipülasyonlar

Hsplit

Bir matrisi yatay olarak birden çok alt matrise böler. axis=0 Split ile aynıdır

Manipülasyonlar

Identity

Belirtilen büyüklükte bir birim matris oluşturur

Başlatma

Init

Matrisi veya vektörü başlatır

Başlatma

Inner

İki matrisin iç çarpımı

Çarpımlar

Inv

Jordan-Gauss yöntemiyle tersinir kare matrisin çarpımsal tersini hesaplar

Çözümler

Kron

İki matrisin, matrisin ve vektörün, vektörün ve matrisin veya iki vektörün Kronecker çarpımını geri döndürür

Çarpımlar

LinearRegression

Hesaplanan lineer regresyon değerleriyle bir vektör/matris hesaplar

İstatistikler

Loss

Kayıp fonksiyonu değerlerini hesaplar ve onları aktarılan vektöre/matrise yazar

Makine öğrenimi

LstSq

Lineer cebirsel denklem sisteminin en küçük kareler çözümünü geri döndürür (kare olmayan veya dejenere matrisler için)

Çözümler

LU

Alt üçgen matris ve üst üçgen matrisin çarpımı olarak, matrisin LU ayrışması

Dönüşümler

LUP

Yalnızca satır permütasyonlarıyla LU ayrışması olarak, kısmi pivotlu LUP ayrışması: PA=LU

Dönüşümler

MatMul

İki matrisin matris çarpımı

Çarpımlar

Max

Matristeki/vektördeki maksimum değeri geri döndürür

İstatistikler

Mean

Elemanların aritmetik ortalamasını hesaplar

İstatistikler

Median

Matris/vektör elemanlarının medyanını hesaplar

İstatistikler

Min

Matristeki/vektördeki minimum değeri geri döndürür

İstatistikler

Norm

Matrisin veya vektörün normunu geri döndürür

Özellikler

Ones

1'lerle dolu yeni bir matris oluşturur ve geri döndürür

Başlatma

Outer

İki matrisin veya iki vektörün dış çarpımını hesaplar

Çarpımlar

Percentile

Matris/vektör elemanlarının veya belirtilen eksen boyuncaki elemanların belirtilen yüzdelik dilimini geri döndürür

İstatistikler

PInv

Moore-Penrose yöntemiyle matrisin yalancı tersini hesaplar

Çözümler

Power

Kare matrisi bir tam sayı kuvvete yükseltir

Çarpımlar

Prod

Belirtilen eksen boyunca da gerçekleştirilebilen matris/vektör elemanlarının çarpımını geri döndürür

İstatistikler

Ptp

Matrisin/vektörün veya belirtilen matris ekseninin değer aralığını geri döndürür

İstatistikler

QR

Matrisin qr ayrışmasını hesaplar

Dönüşümler

Quantile

Matris/vektör elemanlarının veya belirtilen eksen boyuncaki elemanların belirtilen dağılım dilimini geri döndürür

İstatistikler

Rank

Gauss yöntemini kullanarak matris rankını geri döndürür

Özellikler

RegressionMetric

Belirtilen veri kümesi üzerinde oluşturulan regresyon çizgisinden sapma hatası olarak, regresyon metriğini hesaplar

İstatistikler

Reshape

Verilerini değiştirmeden matrisin şeklini değiştirir

Manipülasyonlar

Resize

Belirtilen şekle ve büyüklüğe sahip yeni bir matris geri döndürür

Manipülasyonlar

Row

Bir satır vektörü geri döndürür. Belirtilen satıra vektörü yazar

Manipülasyonlar

Rows

Matristeki satır sayısını geri döndürür

Özellikler

Set

Belirtilen indekse göre vektör elemanının değerini ayarlar

Manipülasyonlar

Size

Vektörün büyüklüğünü geri döndürür

Özellikler

SLogDet

Matrisin determinantının işaretini ve logaritmasını hesaplar

Özellikler

Solve

Lineer matris denklemini veya lineer cebirsel denklem sistemini çözer

Çözümler

Sort

Matris veya vektörü yerinde sıralar

Manipülasyonlar

Spectrum

AT*A çarpımının özdeğerlerinin kümesi olarak, matrisin spektrumunu hesaplar

Özellikler

Split

Bir matrisi birden çok alt matrise böler

Manipülasyonlar

Std

Matris/vektör elemanlarının veya belirtilen eksen boyuncaki elemanların standart sapmasını geri döndürür

İstatistikler

Sum

Belirtilen eksen(ler) boyunca da gerçekleştirilebilen matris/vektör elemanlarının toplamını geri döndürür

İstatistikler

SVD

Tekil değer ayrışması

Dönüşümler

SwapCols

Matristeki sütunları değiştirir

Manipülasyonlar

SwapRows

Matristeki satırları değiştirir

Manipülasyonlar

Trace

Matrisin köşegenlerinin toplamını geri döndürür

Özellikler

Transpose

Matrisin devriğini alır (eksenleri değiştirir) ve değiştirilmiş matrisi geri döndürür

Manipülasyonlar

Tri

İstenilen köşegende ve altında 1'lerin ve diğer yerlerde 0'ların olduğu bir matris oluşturur

Başlatma

TriL

k'nıncı köşegenin üzerindeki elemanların 0'a çevrildiği matrisin bir kopyasını geri döndürür. Alt üçgen matris

Manipülasyonlar

TriU

k'nıncı köşegenin altındaki elemanların 0'a çevrildiği matrisin bir kopyasını geri döndürür. Üst üçgen matris

Manipülasyonlar

Var

Matris/vektör elemanlarının varyansını hesaplar

İstatistikler

Vsplit

Bir matrisi dikey olarak birden çok alt matrise böler. axis=1 Split ile aynıdır

Manipülasyonlar

Zeros

0'larla dolu yeni bir matris oluşturur ve geri döndürür

Başlatma