我想根據矩陣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以及期望輸出的最小例子。 –