如何将矩阵实体作为另一个向量值的索引进行求和



假设我有一个向量B=[1 1 2 2]A=[5 6 7 4],以B的形式表示a中的数字需要求和。也就是说,我们需要将5和6相加作为结果数组的第一个元素,将7和4相加作为第二个元素。如果B是[1 2 1 2],则结果的第一个元素是5+7,第二个元素是6+4。

在一般意义上,我如何在Matlab中做到这一点?

一种灵活而通用的方法是使用accumarray()

accumarray(B',A')

函数将A中的值累加到b指定的位置

由于文档不容易理解,我将总结为什么它是灵活的。您可以:

  • 选择你的累积函数(默认为sum)
  • 指定位置作为一组坐标,用于积累到ND数组
  • 预设累计数组的尺寸(默认扩展到最大位置)
  • pad带自定义值的非累积位置(pad默认为0)
  • 将累计数组设置为sparse,从而可能避免内存不足
[sum(A(1:2:end));sum(A(2:2:end))]

相关内容

  • 没有找到相关文章

最新更新