substitute for discretize command

discretize function was available in new version of matlab..but i have older version (R2014b)in my desktop. i cannot install new version into my desktop..please help my with an alternative function for discretize in matlab

답변 (1개)

Walter Roberson
Walter Roberson 2016년 11월 18일

0 개 추천

For equal intervals, separated by delta:
discrete_x = floor( (x - minimum_allowed_x) ./ delta ) .* delta + minimum_allowed_x;
For unequal intervals in which the left edges are given by the vector edges and the last entry of edges is the upper bound:
[~, ~, bin] = histcounts( x, edges );
discrete_x = edges(bin);

댓글 수: 5

Iason Grigoratos
Iason Grigoratos 2016년 12월 20일
편집: Iason Grigoratos 2016년 12월 20일
matlab 2014a does not have histcounts. Any alternatives?
I did the following:
data = [1 1 2 3 6 5 8 10 4 4]
binedges = 2:2:10;
[cnt, idx] = histc( data, binedges );
outside = data(idx==0) % data that fall outside the bins
binned(1) = data(idx==1) % data that fall into the first bin (2 to 4)
binned(2) = data(idx==2) % data that fall into the first bin (4 to 6) % and so on
% for data value equal to 10 is doesnt work properly though
[~, bin] = histc( x, edges );
discrete_x = edges(bin);
Iason Grigoratos
Iason Grigoratos 2016년 12월 20일
편집: Iason Grigoratos 2016년 12월 20일
it does not work properly, example:
x = [1 1 2 3 6 5 8 10 4 4];
edges = 2:2:10;
[~, bin] = histc( data, edges );
discrete_x = edges(bin);
% bin takes the value of "5" when data value is "10", while the bins are 4 (N border values, N-1 bins)
-- can i just do "bin(bin>=length(edges))=length(edges)-1" ?
Also if x is outside the edges then edges(bin) returns an error, so your x must always be within the range of bins.
[~, discrete_x] = histc(x, edges);
discrete_x(discrete_x == length(edges)) = length(edges)-1;
discrete_x(discrete_x == 0) = NaN;
johnson saldanha
johnson saldanha 2018년 11월 6일
may i know how can i be able to get the 2nd column from the x matrix in discrete_x

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

질문:

2016년 11월 18일

댓글:

2018년 11월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by