MatMul
Matrislerin ve vektörlerin çarpımını sağlayan MatMul metodu birkaç aşırı yüke sahiptir.
Bir matrisi bir matrisle çarpma: matrix[M][K] * matrix[K][N] = matrix[M][N]
matrix matrix::MatMul(
|
Bir vektörü bir matrisle çarpma: horizontal vector[K] * matrix[K][N] = horizontal vector[N]
vector vector::MatMul(
|
Bir matrisi bir vektörle çarpma: matrix[M][K] * vertical vector[K] = vertical vector[M]
vector matrix::MatMul(
|
Skaler vektör çarpımı: horizontal vector * vertical vector = dot value
scalar vector::MatMul(
|
Parametreler
b
[in] Matris veya vektör.
Geri dönüş değeri
Kullanılan metoda bağlı olarak matris, vektör veya skaler.
Not
Matrisler çarpma işlemi için uyumlu olmalıdır, yani birinci matristeki sütun sayısı, ikinci matristeki satır sayısına eşit olmalıdır. Matris çarpımı değişmeli değildir: genel olarak, birinci matrisin ikinci matrisle çarpımının sonucu, ikinci matrisin birinci matrisle çarpımının sonucuna eşit değildir.
Matris çarpımı, birinci matrisin satır vektörlerinin ve ikinci matrisin sütun vektörlerinin skaler çarpımlarının tüm olası kombinasyonlarından oluşur.
Skaler çarpımda vektörler aynı uzunlukta olmalıdır.
Bir vektör ile bir matris çarpılırken, vektörün uzunluğu matrisin sütun sayısıyla tam olarak eşleşmelidir.
MQL5'te saf matris çarpımı algoritması:
matrix MatrixProduct(const matrix& matrix_a, const matrix& matrix_b)
|
Matris çarpımı örneği:
matrix a={{1, 0, 0},
|
Bir yatay vektörü bir matrisle çarpma örneği:
//+------------------------------------------------------------------+
|
Bir matrisi bir dikey vektörle çarpma örneği:
//+------------------------------------------------------------------+
|
Vektörlerin skaler (nokta) çarpımına bir örnek:
void OnStart()
|
Ayrıca bakınız