Обсуждение статьи "Матрицы и векторы в MQL5"

 

Опубликована статья Матрицы и векторы в MQL5:

Специальные типы данных matrix и vector позволяют писать код, приближенный к математической записи. Это избавляет от необходимости создавать вложенные циклы и помнить о правильной индексации массивов, которые участвуют в вычислении. Таким образом повышается надежность и скорость разработки сложных программ.

Для работы с упорядоченными однотипными данными обычно используются массивы, которые позволяет обращаться к каждому элементу по индексу. Массивы широко используются при решении множества задач из линейной алгебры, математического моделирования, в машинном обучении и т.д. Решение этих задач, в общем виде, основывается на математических операциях с использованием матриц и векторов, которые позволяют компактно записать в виде простой формулы очень сложные преобразования. Для программирования таких операций нужен не только хороший уровень знания математики, но и умение писать сложные вложенные циклы. Отладка и поиск ошибки в таких программах могут быть очень изнуряющими. 


Специальные типы данных matrix и vector позволяют писать код, приближенный к математической записи и избавляют от необходимости создавать вложенные циклы, программисту не нужно помнить о правильной индексации массивов, которые участвуют в вычислении. В этой статье мы покажем как создавать, инициализировать и применять объекты matrix и vector в MQL5.


Автор: MetaQuotes

 

Здравствуйте, почему в С++  создается вектор без указанной длины , а в  MQL5 нужно  указывать длину  вектора? 

 например   в С++ работает :

vector <int> vector_second;
 for (int i = 0; i < 3; i++) {
     vector_second .push_back(i);

  }

в  MQL5  не работает:

int value ;  

   vector v;

for(int i = 0; i < 11; i++)

     {

     value =i;

    v[i]=value;

     }

Print("v = ", v);


в  MQL5   работает:


int value ;  

   vector v(11);

for(int i = 0; i < 11; i++)

     {

     value =i;

    v[i]=value;

     }

Print("v = ", v);

 
knyazeff.vad #:

Здравствуйте, почему в С++  создается вектор без указанной длины , а в  MQL5 нужно  указывать длину  вектора? 

 например   в С++ работает :



в  MQL5   работает:


Функция push_back() в C++ добавляет элемент к вектору. Поэтому ей всё равно пустой он или нет.

Попробуйте вместо неё написать так же как в MQL:

vector_second[i] = i;

И тоже получите ошибку.

 
Koldun Zloy #:

Функция push_back() в C++ добавляет элемент к вектору. Поэтому ей всё равно пустой он или нет.

Попробуйте вместо неё написать так же как в MQL:

И тоже получите ошибку.

Будет ли добавлена в  MQL 5 функция типа  push_back() и описание работы со строковыми  функциями в векторах?

 
Будет ли добавлена в  MQL 5 функция типа  push_back() и описание работы со строковыми  функциями в векторах?
 
Приветствую, просьба дополнить Справочник MQL5 примерами и пр. по матрицам и векторам, что их можно передать по ссылке matrix& и т.п.
 
Добрался до внешнего ввода/вывода, файловые операции на вектора/матрицы планируются? FileWrite/ReadMatrix будет?
 
Mikhail Mishanin #:
Добрался до внешнего ввода/вывода, файловые операции на вектора/матрицы планируются? FileWrite/ReadMatrix будет?
FileWriteStruct не работает?
 
Aliaksandr Hryshyn #:
FileWriteStruct не работает?

пока без попыток, вопрос просто как будут записываться/читаться векторстолбцы и векторстроки, ну и матрицы конечно.

сегодня доберусь до кодинга, сообщу результат.

Причина обращения: