我想根据矩阵R中的值将矩阵M的元素求和到数组d中。根据另一个矩阵中的值将一个矩阵的元素求和到数组
从理论上讲,它的不能序列,因为求和成一个阵列(d)的动作需要存储器访问相同的数据。
我实现它以如下方式
for ind = 1: numel(R)
d(R(ind)) = d(R(ind)) + M(ind);
end
像@Andrew在该相关主题提示: How do I iterate through each element in an n-dimensional matrix in MATLAB?
阵列R和元素不是每个大,但也并非1或2 ,它可以是例如1至15
有没有一种更有效的方式来做到这一点在Matlab,即使行动“理论复杂性”会更糟糕?
因为它也可以通过遍历R中的可能值并在R = val的索引中对M中的元素进行求和,或者在Matlab中更“内置”的元素来解决,这些元素不会“喜欢”循环一般来说。
在SQL比如你有一个“内置”的方法来瓦解一个列的重复和获取值的总和其他列。
有一个关于类似的行动,但在不同的langauge话题: Collapse a matrix to sum values in one column by values in another
请给出一些R和M以及期望输出的最小例子。 –