Обсуждение статьи "Работа с матрицами и векторами в MQL5" - страница 6

 
Aleksey Vyazmikin #:

Ваш совет помог, спасибо.

Но, теперь дальше мучаюсь вопросами:

1. Нужно матрицу поделить на вектор - это типичная задача для расчета процентов, когда есть итоговая сумма каждой строки/столбца и нужно узнать процент каждой ячейки - очень востребовано.

Получаю ошибку


У вас стремление всё сломать. Дальше сами, больше не буду помогать - больно смотреть на примеры

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
 {
//---
   matrixf m;
   m.Init(3,2);
   m.Fill(7);//Заполняем матрицу НЕ НУЛЯМИ

   vectorf divider;
   divider.Init(2);
   divider.Fill(3);//Заполняем вектор НЕ НУЛЯМИ

   for(ulong i=0;i<m.Rows();i++)
     {
      m.Row(m.Row(i)/divider,i);
     }
   Print(m);  
 }
 
Rashid Umarov #:

У вас стремление всё сломать. Дальше сами, больше не буду помогать - больно смотреть на примеры

Видимо синтаксис не заходит)))

 
Rashid Umarov #:

У вас стремление всё сломать. Дальше сами, больше не буду помогать - больно смотреть на примеры

Так делайте надежней :)))

Пример не правильный, мне нужно делить каждый столбец матрицы на соответствующее значение в строке вектора. Т.е. вектор должен представлять собой столбец, а не строку. Я так понимаю, что тогда нужно транспонировать матрицу... думал, что это возможно всё без цикла.

И, меня конечно очень интересует ответ на второй вопрос. Даже не ответ, а скорей добавление возможности при делении на ноль поставить ноль в итоговую матрицу.

 
Человек уже катбуст сломать успел, скоро и от матриц ничего не останется )
 
Maxim Dmitrievsky #:
Человек уже катбуст сломать успел, скоро и от матриц ничего не останется )

Вбрасывая ложную информацию, Вы усиливаете высказывание уважаемого человека на этом ресурсе, видимо стараясь пристроится к его авторитету и выставить меня в не лучшем свете,

Испытываете личную неприязнь?

 
Aleksey Vyazmikin #:

Вбрасывая ложную информацию, Вы усиливаете высказывание уважаемого человека на этом ресурсе, видимо стараясь пристроится к его авторитету и выставить меня в не лучшем свете,

Испытываете личную неприязнь?

юмор пока не запретили вроде

 
Maxim Dmitrievsky #:

юмор пока не запретили вроде

Возможно это смешно. Я даже могу предположить реальные предпосылки высказывания. Однако, мало кто поймет о чем речь, если он не завсегдатый ветки про МО.

Вам новый синтаксис матриц понятен, и это только я так плохо соображаю?

 
Aleksey Vyazmikin #:

Возможно это смешно. Я даже могу предположить реальные предпосылки высказывания. Однако, мало кто поймет о чем речь, если он не завсегдатый ветки про МО.

Вам новый синтаксис матриц понятен, и это только я так плохо соображаю?

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

вроде все понятно, сам на питоне датафреймами пользуюсь, там своя специфика

 

Прошу разъяснить, как скопировать столбец из одной матрицы в другую!

Пример через копирования в вектор не понимаю.

vector matrix::Col(
  const ulong   ncol      // номер столбца
   );
 
void matrix::Col(
  const vector  v,        // вектор столбец
  const ulong   ncol      // номер столбца
   );

Вот кусок моего кода

   for(P=0; P<Type_Q_Perebor; P++)
   {
      matrixf m_Data_calc;//Матрица с таблицей для вычислений
      vectorf V_Data_calc;//Вектор для передачи массива в матрицу
      switch(P)
      {
      case 0:
         m_Data_calc.Init(Strok_Total_Data*N_1, 1);//Инициализировали матрицу
         m_Data.Reshape(Strok_Total_Data, Stolb_Total_Data);//Имзенили размер матрицы вместе с данными
         break;
      case 1:
         m_Data_calc.Init(Strok_Total_Data*N_0, 1);//Инициализировали матрицу
         m_Data.Reshape(Strok_Total_Data, Stolb_Total_Data);//Имзенили размер матрицы вместе с данными
         break;
      }

      V_Data_calc.Cov(m_Data_calc,0);//Скопировали вектор-столбец из матрицы
      m_Data_calc.Col(V_Data_calc,0);//Скопировали вектор-столбец в матрицу
   }

Получаю ошибку

'Cov' - wrong parameters count  Tree_Analiz_Bi_V_2_4.mq5        219     19
   built-in: matrixf vectorf:Cov(const vectorf&)        Tree_Analiz_Bi_V_2_4.mq5        219     19
 

Это из другой оперы:

V_Data_calc.Cov(m_Data_calc,0);

Наверное нужно как-то так:

V_Data_calc = m_Data_calc.Col(0); //Получили вектор-столбец из матрицы
Причина обращения: