2013-08-17 15 views
0

K=[1 1 1 2 1 2 10 4 2 10 0 5 1]是一個向量,我想比較K中第7個元素的值與此值的鄰居,其中鄰居是在每邊這個元素旁邊的6個元素。因此,對於K,第7個元素是10,並且鄰居是1 1 1 2 1 2(左鄰居)和4 2 10 4 5 1(右鄰居)。如果第7個值與其每個鄰居之間的差值高於某些門檻,然後我會做一些事情,例如X = 1,否則我會做另一件事,例如X = 2。 因此,在我的例子中,我將閾值設置爲3,因此對於K第7個元素值爲10,並且它與其兩個鄰居10,5之間的差值大於閾值3,因此X將爲1。比較X = 1,因爲有幾個元素與差異。大於T inc第11個元素0,但如果K=[8 7 8 9 7 7 10 7 7 8 0 9 8]那麼X = 2,儘管差異。它與第11個元素之間的距離> T,但這是因爲第11個元素爲零0檢查向量中某個單元格的鄰居之間的差異是否超過了所有鄰居都爲非零的閾值

我使用與我的其他問題下面的腳本這裏找到link

N = 6; % reference index 
T = 3; % threshold 

V = K; 

% formulate if-statement to check for values 
% below/above index N and check if any difference 
% exceeds the threshold 
% the or-statement (because it does not matter if the 
% threshold is exceeded above index N or below) 
% is expressed as | 

if any((V(1:N-1)-V(N))>T) | any((V(N+1:end)-V(N))>T) 
    X = 1; 
else 
    X = 2; 
end 

回答

1

嘿,我想你應該檢查DIFF在建造MATLAB的功能它解決了我的問題。