La forma más limpia que sé es crear una matriz escasa basada en sus datos e índices:
[M,N] = size(Indices); indmax = max(Indices(:));
Result = sparse(repmat(1:N,M,1),Indices,Data,indmax,indmax);
Esperemos que alguien venga y nos muestre un método aún más limpio.