Я уверен, что это можно сделать без цикла for
.В приведенном ниже решении для группировки используется функция discretize
.Возможны другие подходы.
% MATLAB R2017a
% Sample data
D = 20*rand(25,1);
FR = 550*rand(25,1);
D_bins = (0:5:20)';
ind = discretize(D,D_bins); % groups data
FR_mean = zeros(length(D_bins),1);
for k = 1:length(D_bins)
FR_mean(k) = mean(FR(ind==k));
end
bar(D_bins,FR_mean) % bar plot
% Cosmetics
xlabel('Duration (min)')
ylabel('Mean Firing Rate (unit)')
Я уверен, что есть более эффективный способ получения средств для каждой группы, возможно, с использованием arrayfun
или некоторых других изящных функций, но он будет удерживаться до тех пор, пока OP не предоставит более подробную информацию.