【问题标题】:intersection of two continuous ranges in matlabmatlab中两个连续范围的交集
【发布时间】:2014-09-10 21:11:39
【问题描述】:

我有两个连续范围,想在 MATLAB 中检查它们是否有任何交集。我知道它可以通过几个 if 子句 来实现,但我想知道 MATLAB 中是否有任何函数可以这样做。

【问题讨论】:

  • 请更具体并发布示例数据。
  • 也许something like this 是您要找的?
  • 例如 x 包括 1 和 5 之间的所有值,y 包括 2.5 和 7.2 之间的所有值。是否有任何函数可以确定这两个范围的交集不是空集?
  • 精度是多少?我的意思是从 1 到 5 的值,例如增量为 0.1 或 0.0001?

标签: matlab intersection continuous


【解决方案1】:

将您的范围描述为 1×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])

将返回“真”(1)。来电:

result = isRangesIntersect([2.5 7.2], [1 5])

也会返回“true”。

请注意,相邻范围将返回“false”。即调用:

result = isRangesIntersect([1 5], [5 7])

将返回“false”。

如果您希望相邻范围返回“true”,则将第 11 行的 &gt; 运算符更改为 &gt;= 运算符。

【讨论】:

    猜你喜欢
    • 2014-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多