在MATLAB中组合值和索引矩阵

use*_*276 5 matlab

我有一个指数矩阵,如指数= [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中处理此问题有任何建议吗?先感谢您!

yuk*_*yuk 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);
Run Code Online (Sandbox Code Playgroud)