乘以列主矩阵linq

时间:2018-03-02 00:55:08

标签: c# linq matrix

如您所见,行主矩阵的乘法很容易。

但在我的情况下,我有列主矩阵,我如何使用linq乘以列主矩阵?

enter image description here

行主矩阵

$null

列主矩阵

double[][] M1 = { {a1, b1}, {a2, b2}, {a3, b3} };
double[] M2 = { a, b };

double[] M3 = M1.Select(inner => inner.Zip(M2, (x, y) => x*y).Sum()).ToArray();

这些是预期的结果。 (对不起写作样本太懒了。)

double[][] M1 = {{a1,a2,a3},{b1,b2,b3}};

double[] M2 = { a, b };

double[] M3 = ?;

1 个答案:

答案 0 :(得分:0)

我错过了groupby解决方案。

double[] M3 = M1.SelectMany(inner => inner.Select((x, i) => (x, i))
                  .GroupBy(t => t.i, t => t.x, (t, e) => 
                      e.Zip(M2, (x, y) => x * y).Sum()))
                        .ToArray();