Бороздя просторы рунета матраска наткнулся на примечательную статью
«Поиск декартового произведения с помощью LINQ» на Хабре. А оно не единственное на этом глобусе! Надо вспомнить еще и матричное произведение. ( эта тема долго не отпускала автора) => Необходимо найти произведение строки на вектор. Практически это означает что надо перемножить элементы двух массивов|списков с одинаковыми порядковыми номерами.
|
умножение строки на вектор, получаем скаляр |
Такая задача может понадобится для
перемножения матриц. Поэтому ниже представлен пример LINQ запроса возвращающий список перемноженных элементов. Не буду изголятся воспользуюсь функцией join :
double[] s1 = { 1, 2 };
double[] s2 = { 7, 8 };
var t1 = s1.Select((e, i) => new { element = e, index = i });
var t2 = s2.Select((e, i) => new { element = e, index = i });
var t3 = from o1 in t1 join o2 in t2 on o1.index equals o2.index select (double)o1.element*(double)o2.element;
foreach(double t in t3) Console.WriteLine("T: {0}", t);
* This source code was highlighted with Source Code Highlighter.
Комментариев нет:
Отправить комментарий