Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 查找由起点和终点定义的两个范围之间的重叠区域_Matlab_Octave - Fatal编程技术网

Matlab 查找由起点和终点定义的两个范围之间的重叠区域

Matlab 查找由起点和终点定义的两个范围之间的重叠区域,matlab,octave,Matlab,Octave,如何找到由起点和终点定义的两个范围之间的重叠区域? 例如,让 r=[0.74616534, 4.1743176523] 及 如何拥有此重叠区域: [0.74616534, 1] 或与: r=[-2.74616534, 0.1743176523] 它将提供: [0, 0.1743176523] 或与: r=[0.0002845, 0.9888455] 它将提供: [0.0002845, 0.9888455] 等等 是否可能,尽可能简单,并且不循环和比较“开始/结束”点的每个组合

如何找到由起点和终点定义的两个范围之间的重叠区域?
例如,让

r=[0.74616534, 4.1743176523]  

如何拥有此重叠区域:

[0.74616534, 1]
或与:

r=[-2.74616534, 0.1743176523]  
它将提供:

[0, 0.1743176523]
或与:

r=[0.0002845, 0.9888455]
它将提供:

[0.0002845, 0.9888455]
等等

是否可能,尽可能简单,并且不循环和比较“开始/结束”点的每个组合?

在Matlab和GNU倍频程上工作(无奇异函数)。谢谢。

重叠是从两个最小值中的最大值开始,到两个最大值中的最小值结束的范围。如果两者的顺序相反,则为空集

例如

r=[0.74616534,4.1743176523];
k=[0,1];
a=最大值(最小值(r)、最小值(k));
b=最小值(最大值(r),最大值(k));

如果是的话,非常感谢。我需要睡觉。。。只是有点精确;如果a==b,那么它在严格意义上不再是一个“范围”,而只是一个点。一个点可以看作是一个特殊的长度范围=0。不管怎样,谢谢。是的,没错。[-1,0]和[0,1]之间的共同范围是[0]处的一个点
[0.0002845, 0.9888455]
r = [0.74616534, 4.1743176523];
k = [0, 1];
a = max (min (r), min (k));
b = min (max (r), max (k));
if a <= b; Range = [a, b]; else; Range = []; end