在MATLAB中组合值和索引矩阵

lvero 发布于 2019-03-09 matlab 最后更新 2019-03-09 14:42 3 浏览

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

已邀请:

rut

赞同来自:

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