Info

この質問は閉じられています。 編集または回答するには再度開いてください。

how do i get the higher values into the bins

1 回表示 (過去 30 日間)
johnson saldanha
johnson saldanha 2018 年 11 月 20 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
edges=0:10:103
[~, discrete_x] = histc(x, edges);
discrete_x(discrete_x == length(edges)) = length(edges)-1;
discrete_x(discrete_x == 0) = NaN;
in this code the values above 100 is taken as NaN but i want them to go into the 11th bin. how can i do that

回答 (2 件)

GT
GT 2018 年 11 月 20 日
Maybe try using histcounts
Here is a small example:
X = randn(1000,1);
edges = [-5 -4 -2 -1 -0.5 0 0.5 1 2 4 5];
N = histcounts(X,edges)
Where in your example you can specify the edges that you would like.
  3 件のコメント
GT
GT 2018 年 11 月 20 日
Which version of MATLAB do you have?
histcounts came out in R2014b
X= 1:10
X(4) = nan
Y = categorical(X,[1:10 nan])
[a,b] = histcounts(Y)
I believe gives the code that you are looking for, or do you absolutely need to use the histc?
johnson saldanha
johnson saldanha 2018 年 11 月 20 日
im using 2013

Bruno Luong
Bruno Luong 2018 年 11 月 20 日
[~, discrete_x] = histc(x, [edges Inf]);
  1 件のコメント
GT
GT 2018 年 11 月 20 日
Yes, indeed this is a more elegant solution if there are no NaNs. I think I misunderstood the question, @Bruno thanks for stepping in.

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by