2016-06-07 38 views
1

如果我有一個列陣列查找其中值屬於

A = [2; 4; 6; 8] 

和說我有一個值的範圍內

X = 3 

[編輯] 欲識別的範圍內的值它屬於它。在這種情況下,我們知道它在2和4之間,因此結果是2和4.

但是,問題是X未知。我的意思是它必須在模擬過程中進行計算,然後才能確定範圍(在模擬過程中)。

任何人都可以建議我如何編碼?最好以向量的方式,沒有循環,因爲我會處理更大的數組。

+0

「A」是否總是排序?它是否均勻間隔?你想要輸出什麼?它在2到4之間,但是你想要值'2','4',矢量'[2,4]'還是別的什麼作爲輸出?你能保證它在'A'的上下邊界之間嗎? 「X」可以是1嗎?如果'X = 4',你想要什麼?它是在'2-4'還是'4-6'之間? –

+0

@StewieGriffin是的,A將始終被分類並且均勻分佈。我需要它所在範圍的值,就像你提到的2和4一樣。 – nashynash

+0

如果它落在邊界上怎麼辦? –

回答

3

一個非常簡單的代碼行:

interval=find(diff(X<A)) 

讓我改一下你的問題是接近於代碼:您正在尋找地方X<A(interval)是不正確的(較低的區間約束)的索引,但它是真實的爲下一個元素X<A(interval+1)

+0

我想要的是價值而不是索引 – nashynash

+0

@nashynash'A(間隔)' – Dan

+0

是,這似乎工作。但是你能向我解釋'diff'在這裏做什麼嗎?我知道它給出了兩個變量之間的差異。 – nashynash