Indexing Vector of Variables
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I have a column vector of numbers (we'll call it A for example). Is there a slick way to go through A and create another column vector (B) of indices? In other words, if a number in A falls in the range of 0-0.1, it will be binned (i.e., indexed) as 1 in B. If a number in A falls in the range of 0.1-0.2, it will be indexed as 2 in B. If a number in A falls in the range of 0.2-0.3, it will be indexed as 3 in B. And so on. Vector B will then serve as my Indexing vector to allocate each number of A to a certain "bin." I'm sure I could write a FOR and/or IF statement to accomplish this. But for the sake of efficiency, I wanted to ask if there was a more efficient and easier way.
Thanks,
M Ridzon
0 commentaires
Réponse acceptée
Stephen23
le 15 Nov 2017
Modifié(e) : Stephen23
le 15 Nov 2017
That is what the histogram functions do very easily and efficiently:
or
or
etc.
Here is an example:
>> V = rand(1,10)
V =
0.8093 0.0174 0.3329 0.4669 0.5331 0.1471 0.9760 0.3909 0.4499 0.3305
>> B = 0:0.1:1; % bin edges
>> [~,idx] = histc(V,B)
idx =
9 1 4 5 6 2 10 4 5 4
4 commentaires
Stephen23
le 15 Nov 2017
@Matthew: did you read the discretize help? It clearly explains how the data are allocated to the bins.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Data Distribution Plots dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!