5

我有一个索引矩阵,例如 indices = [1,3,1 ; 2,4,2; 1,3,1]。
我有一个值矩阵,例如 values = [5,9,2 ; 3,4,1; 6,8,7]。
我想创建一个新的矩阵组合 = [5+2+6+7,9+8; 3+1,4] 不使用 for 循环。“组合”应该由矩阵“值”的元素根据它们各自的索引在矩阵“索引”中的值相加而成。
你对如何在 MATLAB 中解决这个问题有什么建议吗?先感谢您!

4

1 回答 1

1

您可以使用Statistical Toolbox 中的GRPSTATS函数:

val = [5,9,2 ; 3,4,1 ; 6,8,7];
idx = [1,3,1 ; 2,4,2 ; 1,3,1];

result = grpstats(val(:),idx(:),'sum');
result = reshape(result, 2, 2);
于 2013-04-11T16:56:27.873 回答