У меня есть массив, если значения vals', and a corresponding array of subscripts
subs 'с повторными подписками в выходной массив.Я хотел бы извлечь для каждого нижнего индекса индекс минимизатора соответствующих элементов в 'vals'.Для этого у меня есть следующий фрагмент кода:
function i = minimizer(idx)
[~, i] = min(vals(idx));
i = idx(i);
end
accum = accumarray(subs, (1:numel(vals))', [], @minimizer);
Теперь предположим, что «subs» - это gpuArray.Этот код не работает из-за ограничения accumarray для gpuArrays - я не могу указать пользовательскую функцию агрегирования.Есть ли какая-нибудь быстрая альтернатива, которую я могу использовать для массивов gpu?
PS - я подумал о том, чтобы встроить всю информацию в сложный массив, чтобы действительные (значения) были значениями, а imag (значения) былииндексы.Но, похоже, неясно, как обеспечить, чтобы функция `min 'сравнивала только значения, например, на какой коэффициент мне нужно умножить индексы, чтобы они стали незначительными при сравнении (я могу убедиться, что значениянеотрицательно, поэтому сравнение абсолютных значений в порядке).