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

如何在MATLAB中基于索引向量对矩阵行进行求和?

按索引对矩阵整行求和的实现方法

当indices和values均为列向量时,我们可以用accumarray(indices, values)快速对indices中索引匹配的values元素求和。但如果values是矩阵,需要按indices的索引对整行(而非单个标量)求和时,可通过以下方式实现:

一种可行方案是借助arrayfun遍历values的每一列,对每一列单独调用accumarray完成按索引求和,最后用cell2mat将各列的结果拼接成完整矩阵。具体代码如下:

cell2mat(arrayfun(@(x) accumarray(indices, values(:, x)), 1:size(values, 2), 'UniformOutput', false));

简单说明

  • 匿名函数@(x)负责提取values的第x列,对该列执行accumarray按索引求和操作
  • 设置'UniformOutput', false是为了让arrayfun以cell数组形式收集每列的求和结果,最终通过cell2mat合并为矩阵格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 09:57:03