MySQL矩阵乘法

标签 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

相当于:[[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

将其包装到函数中,然后使用另一个函数来迭代行号和列号可能会起作用,但我在生成这组数字并使用 SQL 迭代它们时遇到问题。 欢迎任何意见/建议

最佳答案

试试:

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#`

示例 here .

(将 'mat01''mat02' 替换为合适的 matrixID 值。)

关于MySQL矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15502622/

相关文章:

mysql - 创建 MySql 表时出错

mysql - 数据库设计以获得尽可能多的统计数据

python - 在 Mac OS X Lion 上设置 MySQLdb 以支持 Django 时遇到问题

php - 根据 BETWEEN 函数值将 INSERT 上的 DATETIME 值分配给 DB

math - 相机远离环面时射线与环面方程相交的数值错误

java - 将点从坐标系(0,800)转换为坐标系(50,-50)jFrame<->opengl

c# - SQL将带前导零的nvarchar转换为十进制

sql - 试图修改 PostgreSQL 中的约束

sql - 在 BigQuery 中按字母顺序连接列

math - 矩阵运算可枚举n部分图的所有路径