A maneira mais limpa que eu sei como fazê -lo é criando uma matriz esparsa com base em seus dados e índices:
[M,N] = size(Indices); indmax = max(Indices(:));
Result = sparse(repmat(1:N,M,1),Indices,Data,indmax,indmax);
Espero que alguém apareça e nos mostre um método ainda mais limpo.