【发布时间】:2019-01-23 18:04:12
【问题描述】:
假设我有两个矩阵MatrixA 和MatrixB,如下所示(其中i 是行号,j 是列号:
MatrixA | MatrixB
i | j | val | i | j | val
---|---|---- | ---|---|----
1 | 1 | 3 | 1 | 1 | 2
1 | 2 | 5 | 1 | 2 | 3
1 | 3 | 9 | 2 | 1 | 7
2 | 1 | 2 | 2 | 2 | -1
2 | 2 | 1 | 3 | 1 | 0
2 | 3 | 3 | 3 | 2 | -4
3 | 1 | 3 |
3 | 2 | -1 |
3 | 3 | 2 |
4 | 1 | 0 |
4 | 2 | 7 |
4 | 3 | 6 |
以更熟悉的形式,它们看起来像这样:
MatrixA = 3 5 9 MatrixB = 2 3
2 1 3 7 -1
-1 2 0 0 -4
7 0 6
我想计算他们的产品(在this YouTube video 中演示):
Product = 41 -32
11 -7
12 -5
14 -3
在我之前使用的非透视列形式中,这是
i | j | val
---|---|----
1 | 1 | 41
1 | 2 | -32
2 | 1 | 11
2 | 2 | -7
3 | 1 | 12
3 | 2 | -5
4 | 1 | 12
4 | 2 | -3
我正在寻找将任何兼容的k x n 和n x m 矩阵相乘作为计算表的通用计算。
【问题讨论】:
-
我很好奇为什么你会在 Power BI 中首先使用这种奇怪格式的矩阵?
-
@FoxanNg 由于 DAX 的柱状性质,这确实是唯一对我有意义的格式。您对它们的格式有更好的建议吗?
-
这是一个矩阵的奇怪表示
-
@AlexisOlson 我实际上建议不要首先在 Power BI 中进行矩阵乘法。现在,Power BI 中同时提供了 Python 和 R 脚本,这将是两种语言都可以做到的一种方式。虽然我不确定您的数据管道如何以及如何获取矩阵,但这可能是也可能不是最适合您的方法。
-
@FoxanNg 问题在于必须预先计算所有内容。除非您使用 DAX 或预先计算所有可能的切片器设置组合,否则您无法与切片器进行动态交互,这通常是不可行的。
标签: matrix powerbi linear-algebra matrix-multiplication dax