Indexing Vector of Variables
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
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 Commenti
Risposta accettata
Stephen23
il 15 Nov 2017
Modificato: Stephen23
il 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 Commenti
Stephen23
il 15 Nov 2017
@Matthew: did you read the discretize help? It clearly explains how the data are allocated to the bins.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Data Distribution Plots in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!