Типы матриц и векторов
matrix и vector — это специальные типы данных в MQL5, предназначенные для выполнения операций из линейной алгебры. Существуют следующие типы данных:
- matrix — матрица, содержащая элементы типа double
- matrixf — матрица, содержащая элементы типа float
- matrixc — матрица, содержащая элементы типа complex.
- vector — вектор, содержащий элементы типа double
- vectorf — вектор, содержащий элементы типа float
- vectorc — вектор, содержащий элементы типа complex
Для применения в шаблонных функциях можно использовать запись matrix<double>, matrix<float>, matrix<complex>, vector<double>, vector<float>, vector<complex> вместо соответствующих типов.
В MQL5 реализована поддержка передачи матриц и векторов в DLL. Это позволяет импортировать функции, использующие этот тип данных, из внешних библиотек.
Матрицы и векторы передаются в DLL в виде указателя на буфер. Например, для передачи матрицы типа float, соответствующий параметр экспортируемой из DLL-функции должен принимать указатель на буфер с типом float.
MQL5
#import "mmlib.dll"
|
C++
extern "C" __declspec(dllexport) bool sgemm(UINT flags, float *C, const float *A, const float *B, UINT64 M, UINT64 N, UINT64 K, float alpha, float beta) |
Для правильной обработки матриц и векторов, кроме их буферов, следует передавать их размеры.
Методы инициализации матриц и векторов
Функция |
Действие |
---|---|
Копирует матрицу, вектор или массив с автоматическим преобразованием |
|
Получает в матрицу или вектор исторические серии структуры MqlRates указанного символа-периода в указанном количестве |
|
Возвращает матрицу с единицами по диагонали и нулями в остальных местах |
|
Создает единичную матрицу указанного размера |
|
Создает и возвращает новую матрицу, заполненную единицами |
|
Создает и возвращает новую матрицу, заполненную нулями |
|
Создает и возвращает новую матрицу, заполненную заданными значениями |
|
Создает матрицу с единицами по указанной диагонали и ниже нее и нулями в остальных местах |
|
Инициализирует матрицу или вектор |
|
Заполняет существующую матрицу или вектор заданным значением |