Я раньше не использовал accumarray
, поэтому из-за комментария от @Dan я решил попробовать.
Сначала я попробовал наивную версию и использовал histc
для подсчета вхождений, чтобы получить желаемые средние значения ... (Обратите внимание, что накопитель будет сортировать результат в том же порядке, что и unique
, поэтому среднее будет правильно рассчитано)
%// Naive version
ua = unique(A(:,1)); %// use as histc bins (or sorted "group" values)
result = accumarray(A(:,1), A(:,2)) ./ histc(A(:,1), uA);
Здесь accumarray
работает, суммируя все записи в A(:,2)
, соответствующие идентичным индексам в A(:,1)
.
Но затем я понял, что, передав необязательный аргумент fun
в accumarray
суммирование "до" означает ", вы можете сделать это как однострочный:
%// one-liner
result = accumarray(A(:,1), A(:,2), [], @mean);
Необходимо отключить Имена таблиц Pluralize для LINQ разработчику SQL.
, Чтобы сделать это перешло к Инструментам-> Опции-> Инструменты Базы данных-> Разработчик O/R и изменяется Плюрализация имен к ложь .
Тогда необходимо будет перекомпилировать проект, и он должен обратиться к именованию