Excel矩阵运算问询:如何基于两个已有矩阵生成新矩阵?
解决Excel矩阵批量计算的高效方案
嘿,你的需求本质就是矩阵乘法,Excel的MMULT函数完全能一次性搞定,不用手动逐个修改参数!我来给你拆解操作步骤:
核心原理
矩阵1是「站点×元素」,矩阵2是「元素×电荷」,而矩阵乘法刚好要求第一个矩阵的列数等于第二个矩阵的行数(这里都是元素的数量),所以直接用MMULT计算两个矩阵的乘积,就能得到你要的「站点×电荷」矩阵3,每个单元格自动完成对应元素的乘积求和。
具体操作步骤
- 确认数据对齐:确保矩阵1的列(元素)顺序和矩阵2的行(元素)顺序完全一致,这是计算正确的前提!如果数据来自不同工作表/CSV,先把CSV导入Excel,统一元素的排列顺序。
- 选中目标区域:在Excel里选中你要生成矩阵3的全部单元格(比如有10个站点、8种电荷,就选10行×8列的空白区域)。
- 输入数组公式:在编辑栏输入公式:
举个实际例子:如果矩阵1在=MMULT(矩阵1的完整数据区域, 矩阵2的完整数据区域)Sheet1!B4:F13(10个站点×5个元素),矩阵2在Sheet2!I4:K8(5个元素×3种电荷),公式就是:=MMULT(Sheet1!B4:F13, Sheet2!I4:K8) - 触发数组计算:输入完公式后,不要直接按回车!要按下
Ctrl+Shift+Enter(新版Excel可能支持直接回车,但老版本必须用这个组合键),此时整个矩阵3会自动填充完成,所有单元格的计算一次性搞定。
为什么之前拖动会麻烦?
你之前是单个单元格调用MMULT,只计算了单行×单列的结果,而用数组公式选中整个目标区域后,MMULT会自动处理所有行和列的乘积求和,完全不用手动调整参数。
内容的提问来源于stack exchange,提问作者communityecologist




