if I have a list of numbers and I want to know where a number lies between two numbers in that list.

2 件のコメント

Roger Stafford
Roger Stafford 2016 年 12 月 19 日
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
khamiis E 2016 年 12 月 19 日

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

 採用された回答

Guillaume
Guillaume 2016 年 12 月 19 日

1 投票

A = [10 25
30 45
50 150
300 450
500 501
502 600
630 700
720 800
801 815
820 1000];
B = 33;
find(B >= A(:, 1) & B <= A(:, 2))

1 件のコメント

khamiis E
khamiis E 2016 年 12 月 20 日
thanks for your answer

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

その他の回答 (2 件)

Walter Roberson
Walter Roberson 2016 年 12 月 19 日

1 投票

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 件のコメント

khamiis E
khamiis E 2016 年 12 月 19 日
編集済み: khamiis E 2016 年 12 月 19 日
Thanks alot for your answer. I can't find the histcounts() function. Is there alternative function?
Star Strider
Star Strider 2016 年 12 月 19 日
The previous histcounts function was called histc with a slightly different calling and output syntax.
Walter Roberson
Walter Roberson 2016 年 12 月 19 日
[~, binnumber] = histc(TheOtherValues, TheVectorOfFixedValues);
Walter Roberson
Walter Roberson 2016 年 12 月 19 日
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
khamiis E 2016 年 12 月 20 日
I really appreciate your effort . thanks for your time and your answer

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

Andrei Bobrov
Andrei Bobrov 2016 年 12 月 19 日
編集済み: Andrei Bobrov 2016 年 12 月 19 日

1 投票

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 件のコメント

khamiis E
khamiis E 2016 年 12 月 20 日
I really appreciate your effort . Thanks for your answer.

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

カテゴリ

ヘルプ センター および File ExchangeVariables についてさらに検索

タグ

質問済み:

2016 年 12 月 19 日

コメント済み:

2016 年 12 月 20 日

Community Treasure Hunt

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

Start Hunting!

Translated by