substitute for discretize command
Show older comments
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
Answers (1)
Walter Roberson
on 18 Nov 2016
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 Comments
Iason Grigoratos
on 20 Dec 2016
Edited: Iason Grigoratos
on 20 Dec 2016
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
Walter Roberson
on 20 Dec 2016
[~, bin] = histc( x, edges );
discrete_x = edges(bin);
Iason Grigoratos
on 20 Dec 2016
Edited: Iason Grigoratos
on 20 Dec 2016
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.
Walter Roberson
on 20 Dec 2016
[~, discrete_x] = histc(x, edges);
discrete_x(discrete_x == length(edges)) = length(edges)-1;
discrete_x(discrete_x == 0) = NaN;
johnson saldanha
on 6 Nov 2018
may i know how can i be able to get the 2nd column from the x matrix in discrete_x
Categories
Find more on Mathematics in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!