Как складывать значения и сюжет - PullRequest
0 голосов
/ 25 марта 2019

У меня есть набор данных с двумя столбцами, первый столбец - это продолжительность (продолжительность (например, 5 минут)), а второй столбец - это скорость стрельбы. Можно ли построить это таким образом, чтобы скорости стрельбы были сгруппированы в соответствии ссоответствующей продолжительности (например, 5, 10, 15 минут), а затем нанесите столбцы с частотой стрельбы по оси Y и временем по оси X?

1 Ответ

1 голос
/ 25 марта 2019

Я уверен, что это можно сделать без цикла 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 не предоставит более подробную информацию.

...