在MATLAB中组合值和索引矩阵

时间:2013-04-11 16:47:30

标签: 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中处理此问题有任何建议吗?提前谢谢!

1 个答案:

答案 0 :(得分: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);