- Составной оператор
- Оператор-выражение
- Оператор возврата return
- Условный оператор if-else
- Условный оператор ?:
- Оператор-переключатель switch
- Оператор цикла while
- Оператор цикла for
- Оператор цикла do while
- Оператор завершения break
- Оператор продолжения continue
- Оператор произведения матриц
- Оператор создания объекта new
- Оператор уничтожения объекта delete
Оператор матричного произведения @
Оператор @ в языке MQL5 реализует матричное умножение по правилам линейной алгебры. Он позволяет выполнять произведение матриц, векторов и скалярное произведение векторов.
Поддерживаемые типы элементов:
- float
- double
- complex<float>
- complex<double>
Важно: типы элементов в левом и правом операндах должны совпадать.
Примеры использования
1. Матричное умножение (матрица × матрица)
matrix A(2, 3);
|
2. Матричное умножение (матрица × вектор)
matrix M(2, 3);
|
3. Матричное умножение (вектор × матрица)
matrix M(2, 3);
|
4. Скалярное произведение (вектор × вектор)
vector V1(1, 3), V2(1, 3);
|
Примечание
Размерности должны соответствовать правилам умножения: число столбцов в первом операнде = числу строк во втором.
В случае ошибки размерностей будет выброшено исключение на этапе выполнения.
Векторы слева считаются горизонтальными (1×n).
Векторы справа считаются вертикальными (n×1).
Приоритет опреации @ соответствует приоритету умножения, т.е. для записи вида D=C+A@B, сначала будет произведено матричное умножение T=A@B, затем поэлементное сложение D=C+T.
Смотри также