gpt4 book ai didi

matlab - 在matlab中将范围划分为垃圾箱

转载 作者:行者123 更新时间:2023-12-02 06:07:15 24 4
gpt4 key购买 nike

我从一个更大的矩阵中得到以下范围:

范围(一)

答案=

94   153   144    59    79    90   131    64

我的教授要求我们:将范围分成 N = 10 个等长的段(以下称为“bins”),并为每个 bin 找到它的边界 (aj, bj) 以及它的中心 cj。

(5) 将每个测量到的细菌数 xi 放入下界小于或等于 xi 且上界大于 xi 的 bin 中;此后,为每个 bin 计算分配给它的 xi 的数量 (= nj)。

(6) 使用 N = 10 条绘制测量的细菌计数的直方图。试试 MATLAB 函数 hist(x,N) 和 bar(c, n)

我知道这很多,但我完全没有从这个人那里得到任何指示,非常感谢您的帮助:)

最佳答案

考虑以下示例,它应该可以解决您的所有问题:

%# random data vector of integers
M = randi([50 200], [100 1]);

%# compute bins
nbins = 10;
binEdges = linspace(min(M),max(M),nbins+1);
aj = binEdges(1:end-1); %# bins lower edge
bj = binEdges(2:end); %# bins upper edge
cj = ( aj + bj ) ./ 2; %# bins center

%# assign values to bins
[~,binIdx] = histc(M, [binEdges(1:end-1) Inf]);

%# count number of values in each bin
nj = accumarray(binIdx, 1, [nbins 1], @sum);

%# plot histogram
bar(cj,nj,'hist')
set(gca, 'XTick',binEdges, 'XLim',[binEdges(1) binEdges(end)])
xlabel('Bins'), ylabel('Counts'), title('histogram of measured bacterial')

请注意,这会正确处理最后一个 bin(阅读此 related question 以了解有关这些边缘情况的讨论)

screenshot

关于matlab - 在matlab中将范围划分为垃圾箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7911714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com