确定一个数字落入哪个范围

时间:2016-03-15 10:53:14

标签: matlab

给定一定数量的范围:

a =

    32225   52259
    52260   70794
    70795   91459
    91460   95409

单个值x = 61450 - 有没有办法确定x在哪个范围内没有使用循环检查每种可能性?在这种情况下,答案是2,因为61450属于第二范围。

2 个答案:

答案 0 :(得分:9)

使用

res = find(x >= a(1,:) & x < a(2,:));

答案 1 :(得分:5)

好的,做了一个: - )。

foo = [1;round(1e5*rand(1000,1))];
foop = [ foo(2:end)+1;1e6];

x = 1e5*rand(1,1);
tic
for j = 1:1000

    bardro = find(x >= foo & x <= foop);
end
tocdro = toc;

tic;
for j = 1:1000
    barlui = sum(x >=foo);
end
toclui  = toc;

>> tocdro
tocdro =
    0.0113
>> toclui
toclui =
    0.0047

我们有一个胜利者!