MATLAB Answers

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

1 ビュー (過去 30 日間)
Ivan Mich
Ivan Mich 2021 年 4 月 15 日
コメント済み: Walter Roberson 2021 年 4 月 16 日
I have a code that reads my data, and distribute them into bins: [0,2),[2,4),[4 6].
T=readtable('data.txt')
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
Could you please help me?

回答 (2 件)

Steven Lord
Steven Lord 2021 年 4 月 15 日
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
Image Analyst 2021 年 4 月 15 日
Did you try just a simple for loop with an If statement inside?
  4 件のコメント
Walter Roberson
Walter Roberson 2021 年 4 月 16 日
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 = 

サインインしてコメントする。

Community Treasure Hunt

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

Start Hunting!

Translated by