我将此函数作为 Google Apps 脚本中的自定义函数用于电子表格:
function MultiplyMatrix(m2, m1) {
var result = [];
for(var j = 0; j < m2.length; j++) {
result[j] = [];
for(var k = 0; k < m1[0].length; k++) {
var sum = 0;
for(var i = 0; i < m1.length; i++) {
sum += m1[i][k] * m2[j][i];
}
result[j].push(sum);
}
}
return result;
}
是否有一种方法可以获取数组的特定索引,而无需将整个结果矩阵输入到电子表格中,如果是的话,语法是什么?
我有这个:
我想要这个:
最佳答案
由于我无法发表评论,因此我将使用答案。考虑到您的问题是如何表述的,一个简单的答案可能是更改您的自定义函数定义,以便它需要两个额外的参数,即您感兴趣的结果的行索引和列索引;因此你的代码变成:
function MultiplyMatrix(m2, m1, row, col) {
var result = [];
for(var j = 0; j < m2.length; j++) {
result[j] = [];
for(var k = 0; k < m1[0].length; k++) {
var sum = 0;
for(var i = 0; i < m1.length; i++) {
sum += m1[i][k] * m2[j][i];
}
result[j].push(sum);
}
}
return result[row][col];
}
然后您可以将函数调用为 =MultiplyMatrix(A1:B2, C3:D4, 1, 1)
来获取第二行和第二列的交集值。
如果这不是您期望的答案,我建议您编辑您的问题,将其也标记为 google-spreadsheet (javascript 自定义函数特定于此),并澄清要求。电子表格示例可能对我们所有人都有帮助。
关于javascript - 获取Google电子表格中二维矩阵的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464737/