You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Excel动态数组函数根据值列创建可嵌套MMULT的对角矩阵

Excel 内存构造隐式对角矩阵参与矩阵运算方法

全程运算在内存中完成,不需要将对角矩阵输出到工作表单元格占用存储,可直接作为MMULT等矩阵运算函数的参数参与计算

参考示例

对角线值列与对应对角矩阵示例

可用公式方案

假设你的对角线元素存储在单列区域(例如示例中的A2:A5区域),可根据自身Excel版本选择对应方案:

方案1:全兼容LAMBDA版本(支持所有带LAMBDA功能的Excel 365/2021版本)

核心构造逻辑为生成n行n列的数组,仅当行号与列号相等时取对应位置的对角值,其余位置填0,对角矩阵构造公式片段:

=MAKEARRAY(ROWS(对角值列),ROWS(对角值列),LAMBDA(r,c,IF(r=c,INDEX(对角值列,r),0)))
  • ROWS(对角值列)会自动获取对角矩阵的阶数n,和对角值的数量保持动态匹配,不需要手动输入尺寸
  • 可直接将该片段嵌入矩阵运算,例如要计算该对角矩阵左乘B2:E5区域的矩阵,完整公式为:
=MMULT(MAKEARRAY(ROWS(A2:A5),ROWS(A2:A5),LAMBDA(r,c,IF(r=c,INDEX(A2:A5,r),0))),B2:E5)

方案2:简洁广播版本(支持较新版本Excel 365)

利用单位矩阵和数组广播规则实现更短的写法,先生成n阶单位矩阵,再和对角值做逐元素相乘,直接得到对角矩阵,公式片段:

=MUNIT(ROWS(对角值列))*TOROW(对角值列)

同样可以直接嵌入矩阵运算,上述左乘运算的公式可简化为:

=MMULT(MUNIT(ROWS(A2:A5))*TOROW(A2:A5),B2:E5)

注意事项

  • 所有公式均为动态数组公式,输入后按回车即可自动溢出全部运算结果,不需要选中多单元格区域按数组组合键确认
  • 参与MMULT运算时需要保证矩阵尺寸匹配:对角矩阵左乘其他矩阵时,阶数需要和被乘矩阵的行数一致;右乘其他矩阵时,阶数需要和被乘矩阵的列数一致
  • 如果对角线元素是存储在单行区域,将简洁版公式中的TOROW替换为TOCOL即可适配广播规则

内容的提问来源于stack exchange,提问作者Per

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 09:45:19