# How to replace specific values to all values of a bin ?

63 views (last 30 days)
Ivan Mich on 15 Apr 2021 at 5:40
Commented: Walter Roberson on 16 Apr 2021 at 1:11
I have a code that reads my data, and distribute them into bins: [0,2),[2,4),[4 6].
X=T(:,1)
Y=discretize(X,[ 0 2 4 6])
I would like to set specific value into each bin depending on its value.
I would like to set value 1.6 for values in first bin, value 3.8 for values in in second bin and value 5.7 for values in last bin.
I mean I would like to replace all values in first bin with 1.6, replace all the values of second bin with 3.8 and replace all the values of the third bin with 5.7

Steven Lord on 15 Apr 2021 at 17:39
Specify the values input argument in your discretize call.
x = 6*rand(10, 1);
d = discretize(x, 0:2:6, [1.6, 3.8, 5.7]);
results = table(x, d)
results = 10×2 table
x d _______ ___ 0.19796 1.6 3.9069 3.8 4.0021 5.7 0.85789 1.6 5.5115 5.7 5.0587 5.7 2.3297 3.8 5.465 5.7 0.73075 1.6 5.858 5.7

Image Analyst on 15 Apr 2021 at 14:00
Did you try just a simple for loop with an If statement inside?
Walter Roberson on 16 Apr 2021 at 1:11
There is one place that 2 <= x < 4 works: inside piecewise() statements
syms x
piecewise(2 <= x < 4, 1, 4 <= x <= 5, 2, symtrue, 0)
ans = 