javascript - 似乎无法弄清楚为什么我的矩阵乘法函数不起作用
问题描述
let multiply = function(a, b) {
let c = [];
for(let row = 0; row < 4; row++){
for(let col = 0; col < 4;col++){
for(let i = 0; i < 4; i++){
c[col + (4*row)] += a[i][row] * b[col][i];
}
}
}
该函数采用两个四乘四矩阵并输出一个长度为 16 的数组。它似乎没有给我正确的数组。
解决方案
这应该可以解决问题
let multiply = function(a, b) {
let c = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
for(let row = 0; row < 4; row++){
for(let col = 0; col < 4; col++){
for(let i = 0; i < 4; i++){
c[col + (4*row)] += a[row][i] * b[i][col];
}
}
}
return c;
}
请注意,您需要初始化输出数组并且您的row x col
乘法错误;你需要:
a[row][i] * b[i][col]
而不是
a[i][row] * b[col][i]
函数还应该返回结果数组。
您可以尝试使用 JSFiddle:https ://jsfiddle.net/1fxLpucg/
推荐阅读
- python - node-red-contrib-machine-learning 中的错误
- mongodb - 尝试在弹性搜索中将 MongoDB 文档作为单独的类型导入
- css - 在同一行使用 CSS 省略号和其他元素(兼容 ie9)
- sas - 取消引用宏变量的正确方法
- html - 资源解释为样式表,但使用 MIME 类型 text/html 传输:“http://127.0.0.1:3000/user/login”
- shell - "netcat -e" 执行脚本后重置连接
- arrays - 从 SQL 中选择 JSON 并按 ID 连接元素
- r - R循环遍历分割字符串数组,每行最后一个单词
- c# - 通过在后台连续轮询更改数据库值时通知用户
- c# - 为 asp.net core MVC 应用程序设置默认页面