Bin data in a strange way

1 visualizzazione (ultimi 30 giorni)
Jason
Jason il 16 Set 2019
Commentato: Jason il 17 Set 2019
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 Commenti
the cyclist
the cyclist il 16 Set 2019
What do you want the output to be, specifically?
Jason
Jason il 16 Set 2019
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

Accedi per commentare.

Risposta accettata

the cyclist
the cyclist il 16 Set 2019
Modificato: the cyclist il 17 Set 2019
% 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 Commenti
the cyclist
the cyclist il 17 Set 2019
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 il 17 Set 2019
Yes that worked, thankyou very much.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Distribution Plots in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by