在MATLAB中将值和索引的矩阵合并

5
我有一个索引矩阵,例如indices = [1,3,1 ; 2,4,2 ; 1,3,1]。 我有一个值矩阵,例如values = [5,9,2 ; 3,4,1 ; 6,8,7]。 我想要创建一个新的矩阵combined = [5+2+6+7,9+8 ; 3+1,4],不使用for循环。"Combined"应该由矩阵"values"中的元素相加组成,基于它们在矩阵"indices"中的位置。 您在MATLAB中有任何建议吗?谢谢您提前!
1个回答

1

您可以使用统计工具箱中的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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接