我有一个包含两列的数据集,第一列是持续时间(时间长度(例如5分钟),第二列是点火率。是否可以根据相应的持续时间对点火速率进行分箱)例如5,10,15分钟),然后在y轴上绘制具有激发速率的条,在x轴上绘制时间。
我确信这可以在没有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提供更多细节。