我有一个索引矩阵,例如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中有任何建议吗?谢谢您提前!
您可以使用统计工具箱中的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);