フィルターのクリア

Bin data in a strange way

1 回表示 (過去 30 日間)
Jason
Jason 2019 年 9 月 16 日
コメント済み: Jason 2019 年 9 月 17 日
Hello, I want to be able to put data into a bin but in a strange way.
My bin centres are 0, -2765, -5530, -8295, -11060
I only want data to slot into any of these bins if its within +/- 20 of the centre.
So for data to be in the 1st in it has to be in the range 20 to -20
And for the 2nd bin, in the range -2745 to -2785
Thnaks for any help
  2 件のコメント
the cyclist
the cyclist 2019 年 9 月 16 日
What do you want the output to be, specifically?
Jason
Jason 2019 年 9 月 16 日
Any data to be one of those values if within the bin width.
So
10 -> 0
200->NaN
-2760 -> -2765
-2770 -> -2765
-2780 -> -2765
-2790 -> NaN

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

採用された回答

the cyclist
the cyclist 2019 年 9 月 16 日
編集済み: the cyclist 2019 年 9 月 17 日
% Simulate some data
data = [0; 0; -10; -2766; -5600; -5535];
% Define bin centers
binCenter = [ 0, -2765, -5530, -8295, -11060];
% Find distance between each point and each bin center
% (Relies on implicit expansion)
distance = abs(data - binCenter);
% Find distance to nearest bin center (and index of that center)
[minDist,minIdx] = min(distance,[],2);
% New variable with value of nearest bin center (or NaN if too far away)
data2 = binCenter(minIdx)';
data2(minDist > 20) = NaN;
  3 件のコメント
the cyclist
the cyclist 2019 年 9 月 17 日
Hm. That's not what I get. I made a correction after I posted, so maybe you caught the code before that? I made another couple changes above (smaller test set, and oriented data2 to be a column vector). Try that.
I get
[data, data2]
ans =
0 0
0 0
-10 0
-2766 -2765
-5600 NaN
-5535 -5530
Jason
Jason 2019 年 9 月 17 日
Yes that worked, thankyou very much.

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeHistograms についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by