给定一定数量的范围:
a =
32225 52259
52260 70794
70795 91459
91460 95409
单个值x = 61450
- 有没有办法确定x在哪个范围内没有使用循环检查每种可能性?在这种情况下,答案是2
,因为61450属于第二范围。
答案 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
我们有一个胜利者!