Azo*_*lin 10 mysql sql math matrix linear-algebra
我正在尝试为MySQL编写矩阵乘法,并且有点卡住:
基本上,我的矩阵以
[row#,column#,matrixID,value] 格式存储,所以例如矩阵[3 x 2]将是这样的:
[row#, column#, matrixID, value]
1 1 mat01 1
1 2 mat01 2
1 3 mat01 3
2 1 mat01 4
2 2 mat01 5
2 3 mat01 6
Run Code Online (Sandbox Code Playgroud)
相当于:[[1 2 3],[4 5 6]]
下面很好地计算了matrix1*matrix2的单个元素:
SELECT SUM(row1.`val` * col2.`val`)
FROM matValues row1
INNER JOIN `matValues` col2
WHERE row1.`row` = 1 AND row1.`mID`='matrix1' AND
col2.`mID`='matrix2' AND col2.`col` = 1 AND row1.col = col2.row
Run Code Online (Sandbox Code Playgroud)
将此包装到函数中,然后使用另一个函数迭代行和列号可能会起作用,但是我在生成这组数字并使用SQL迭代它们时遇到问题.欢迎任何建议/意见
小智 18
尝试:
select m1.`row#`, m2.`column#`, sum(m1.value*m2.value)
from matValues m1
join matValues m2 on m2.`row#` = m1.`column#`
where m1.matrixID = 'mat01' and m2.matrixID = 'mat02'
group by m1.`row#`, m2.`column#`
Run Code Online (Sandbox Code Playgroud)
这里的例子.
(替换'mat01'并'mat02'使用合适的matrixID值.)
| 归档时间: |
|
| 查看次数: |
12280 次 |
| 最近记录: |