2013-04-11 3 views
5

У меня есть матрица индексов, таких как индексы = [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? Заранее спасибо!Сочетание матрицы значений и индексов в MATLAB

ответ

1

Вы можете использовать функцию GRPSTATS из статистического Toolbox:

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); 
Смежные вопросы