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(2, 3);
matrix B(3, 2);
matrix C = A @ B; // Sonuç: [2,2] büyüklüğünde C matrisi

 

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

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

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

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

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

vector V1(1, 3), V2(1, 3);
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,