给定一定范围的范围:
a =
32225 52259
52260 70794
70795 91459
91460 95409
Run Code Online (Sandbox Code Playgroud)
并且单个值x = 61450- 有没有办法确定x在哪个范围内下降而不使用循环来检查每种可能性?在这种情况下,答案是261450属于第二范围.
使用
res = find(x >= a(1,:) & x < a(2,:));
Run Code Online (Sandbox Code Playgroud)
好的,做了一个:-).
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
Run Code Online (Sandbox Code Playgroud)
我们有一个胜利者!