Matris çarpımı operatörü @

@ MQL5 operatörü lineer cebir kurallarına göre matris çarpımı gerçekleştirir. Matrisleri ve vektörleri çarpmanın yanı sıra vektörlerin skaler çarpımını gerçekleştirmeye de olanak sağlar.

Desteklenen eleman türleri:

  • float
  • double
  • complex<float>
  • complex<double>

Önemli: Sol ve sağ taraftaki eleman türleri eşleşmelidir.

Kullanım örnekleri

1. Matris çarpımı (matris × matris)

matrix A(23);
matrix B(32);
matrix C = A @ B// Sonuç: [2,2] büyüklüğünde C matrisi

 

2. Matris çarpımı (matris × vektör)

matrix M(23);
vector V(3);
vector R = M @ V// Sonuç: 2 elemanlı R vektörü

3. Matris çarpımı (vektör x matris)

matrix M(23);
vector V(12);
vector R = V @ M// Sonuç: 3 elemanlı R vektörü

4. Skaler çarpım (vektör × vektör)

vector V1(13), V2(13);
double r = V1 @ V2// Sonuç: Skaler

Not

Boyutlar çarpma kurallarına uygun olmalıdır: ilk terimdeki sütun sayısı = ikinci terimdeki satır sayısı.

Bir boyut hatası olması durumunda, çalışma zamanında bir hata tetiklenir.

Soldaki vektörler yatay olarak kabul edilir (1×n).

Sağdaki vektörler dikey olarak kabul edilir (n×1).

@ işleminin önceliği çarpma işleminin önceliğiyle aynıdır, örneğin D=C+A@B ifadesi için önce T=A@B matris çarpımı, ardından D=C+T eleman bazında toplama işlemi gerçekleştirilir.

Ayrıca bakınız

MatMul, GeMM, Kron, Dot,