它應該返回最低索引i,如果數x(i)和X之間的位於第(i + 1)。我知道這並不難寫這將做到這一點,但沒有任何內置的Matlab的功能這樣的功能?任何內置MATLAB函數找到,如果一定數量躺着一個向量的兩個成員之間?
假設向量元素進行排序這將是一個微不足道的搜索O(LOGN)我猜,但有沒有更好的方式來做到這一點,如果元素沒有經過分揀去排序?
在此先感謝!
它應該返回最低索引i,如果數x(i)和X之間的位於第(i + 1)。我知道這並不難寫這將做到這一點,但沒有任何內置的Matlab的功能這樣的功能?任何內置MATLAB函數找到,如果一定數量躺着一個向量的兩個成員之間?
假設向量元素進行排序這將是一個微不足道的搜索O(LOGN)我猜,但有沒有更好的方式來做到這一點,如果元素沒有經過分揀去排序?
在此先感謝!
邏輯指數非常適合於這些類型的比較:
x = [6 2 6 7 3 5];
a = 4;
find(a > x(1:end-1) & a < x(2:end), 1)
ans = 2
非常優雅。直到現在還不知道邏輯索引,完全錯過了Matlab的一個強大的工具。謝謝! – as3rdaccount
嘗試
a=rand(1);
b=rand(1,10);
c=a-b;
find(c(2:end).*c(1:end-1)<0,1)
但它應該在此那裏有我的一個以上的特定值的情況下做條件成立? – mathematician1975
已編輯。謝謝指出! – as3rdaccount
我認爲你的要求還不夠清楚。如果要搜索的載體是'[6,2,6,2,6,2]',問題中的數量是'4'又該功能你尋求回報? –