2016-07-24 47 views
1

如何找到由其起點和終點定義的兩個範圍之間的重疊區域?
例如,讓找到由其起點和終點定義的兩個範圍之間的重疊區域

r=[0.74616534, 4.1743176523] 

k=[0,1] 

如何有這樣的重疊區域:

[0.74616534, 1] 

或用:

r=[-2.74616534, 0.1743176523] 

它會摹香港專業教育學院:

[0, 0.1743176523] 

或用:

r=[0.0002845, 0.9888455] 

它會給:

[0.0002845, 0.9888455] 

是否有可能,就這麼簡單可以和不循環和比較「開始/結束」點的每個組合?
在Matlab和GNU Octave上工作(沒有奇特的功能)。謝謝。

回答

2

的重疊是由兩個極小的最大開始的範圍內,且在兩個最大值的最小結束。如果兩者的順序相反,則是空集。

E.g.

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 
+1

非常感謝。我需要睡覺......只是有點精確;如果a == b,那麼它不再是嚴格意義上的「範圍」,而只是一個點。那麼,一個點可能被視爲長度= 0的特殊範圍。無論如何,謝謝。 –

+0

是的,確切地說。 [-1,0]和[0,1]之間的共同範圍將是[0] –

+0

@Tasos處的單個點,您是對的。我刪除了我的答案 – user1543042

相關問題