Самый чистый способ, которым я знаю, как это сделать, - это создание разреженной матрицы на основе ваших данных и индексов:
[M,N] = size(Indices); indmax = max(Indices(:));
Result = sparse(repmat(1:N,M,1),Indices,Data,indmax,indmax);
Надеюсь, кто -то придет и показывает нам еще более чистый метод.