我有两个连续范围,想在MATLAB中检查它们是否有任何交集。我知道它可以通过一些 if子句来实现,但我想知道MATLAB中是否有任何函数可以实现。
答案 0 :(得分:0)
将您的范围描述为1 x 2阵列,并使用此功能:
function result = isRangesIntersect(range1, range2)
if range1(1) < range2(1)
lowRange = range1;
highRange = range2;
else
lowRange = range2;
highRange = range1;
end
result = lowRange(2) > highRange(1);
end
让我们说你的第一个范围是1到5,你的第二个范围是2.5到7.2,然后是电话:
result = isRangesIntersect([1 5], [2.5 7.2])
将返回&#34; true&#34; (1)。电话:
result = isRangesIntersect([2.5 7.2], [1 5])
也将返回&#34; true&#34;。
请注意,相邻范围将返回&#34; false&#34;。即电话:
result = isRangesIntersect([1 5], [5 7])
将返回&#34; false&#34;。
如果您希望相邻范围返回&#34; true&#34;,请将第11行的>
运算符更改为>=
运算符。