4
给定范围的一组数:确定哪些范围内的数落入
a =
32225 52259
52260 70794
70795 91459
91460 95409
和单个值x = 61450
- 有一种方法来确定其内范围X落在而不使用循环来检查每个可能性?在这种情况下的答案是2
,因为61450落在第二范围内。
给定范围的一组数:确定哪些范围内的数落入
a =
32225 52259
52260 70794
70795 91459
91460 95409
和单个值x = 61450
- 有一种方法来确定其内范围X落在而不使用循环来检查每个可能性?在这种情况下的答案是2
,因为61450落在第二范围内。
使用
res = find(x >= a(1,:) & x < a(2,:));
OK,做一个:-)。
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
我们赢了!
我会建议在其中一边添加'='。 – Adiel
@Adiel,感谢您的评论,我同意 – drorco
@Anna如果范围总是增加并且连续,'result = sum(x> = a(:,1));'这也适用 –