我想根据矩阵 R 中的值将矩阵 M 的元素相加到数组 d 中。
从理论上讲,它不能被序列化,因为求和到一个数组 (D) 的操作需要内存访问相同的数据。
我通过以下方式实现它
for ind = 1: numel(R)
d(R(ind)) = d(R(ind)) + M(ind);
end
就像@Andrew 在这个相关主题中建议的那样: 如何在 MATLAB 中遍历 n 维矩阵中的每个元素?
数组 R 的元素并不是每个都很大,也不是 1 或 2,例如可以是 1 到 15。
在 Matlab 中是否有更有效的方法来做到这一点,即使动作的“理论复杂性”会更糟?
因为它也可以通过迭代 R 中的可能值并将 M 在索引中的元素求和来解决,其中 R = val 或 Matlab 中更多“内置”的东西,一般来说,它们不“喜欢”循环。
例如,在 SQL 中,您有一个“内置”方法来折叠一列的重复并获取另一列中值的总和。
有一个关于类似操作但语言不同的主题: 折叠矩阵以将一列中的值与另一列中的值相加