what can I do?
Afficher commentaires plus anciens
if I have a list of numbers and I want to know where a number lies between two numbers in that list.
2 commentaires
Roger Stafford
le 19 Déc 2016
Please give more details in your question! Better still, give a concrete example of the "list" and precisely what results you wish to obtain from it.
khamiis E
le 19 Déc 2016
Réponse acceptée
Plus de réponses (2)
Walter Roberson
le 19 Déc 2016
Suppose you have a vector of values in sorted order, and have some other values, and you want to know where in the vector the other values would sit. Then:
[~, ~, binnumber] = histcounts(TheOtherValues, TheVectorOfFixedValues);
Then, TheOtherValues(K) is between TheVectorOfFixedValues(binnumber(K)) and the next value.
5 commentaires
Star Strider
le 19 Déc 2016
The previous histcounts function was called histc with a slightly different calling and output syntax.
Walter Roberson
le 19 Déc 2016
[~, binnumber] = histc(TheOtherValues, TheVectorOfFixedValues);
Walter Roberson
le 19 Déc 2016
Note: this code was written assuming that your ranges had no gaps, but it appears from your diagram that it does not apply.
khamiis E
le 20 Déc 2016
Andrei Bobrov
le 19 Déc 2016
Modifié(e) : Andrei Bobrov
le 19 Déc 2016
A = [10 25
30 45
50 150
300 450
500 501
502 600
630 700
720 800
801 815
820 1000]; % your "start-end"
B = [33 300 501 75 754 809 1000 47]'; % Let B - your numbers
b = prod(A - reshape(B,1,1,[]),2);
out = sum(bsxfun(@times,squeeze(b < 0 | b == 0),(1:size(A,1))'))
1 commentaire
khamiis E
le 20 Déc 2016
Catégories
En savoir plus sur Variables dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
