2017-06-01 84 views
0

我有兩個陣列具有不同的長度,例如A =[ 2 3 11 0 8 ]B=[ 2 6 8](該數據是在實際情況下,更大的),我想對它們進行比較,並發現驗證abs(A(i)-B(j))> 2元件。比較不同長度(不等的情況下)的兩個陣列

是否有任何快速的功能,這樣做(如ismember,但不平等)?

+0

快速功能是一般的快,是因爲量化的,它依賴於具有相同的大小。 –

+0

這種情況下的正確答案是什麼? '[0 1 1]'? – houtanb

+3

你有'我'和'j'指數。你想比較所有元素對(在你的例子中是3 * 5)嗎?如果是,請嘗試'[ii,jj] = find(abs(bsxfun(@minus,A(:),B(:)。'))> 2)' –

回答

1

您可以創建一個小函數來檢查所有可能的組合並將「有效」組合發回給您。

A = [2 3 11 0 8]; 
B = [2 6 8]; 

C = isbigger(A,B,2); %output = the element that verify abs(A-B)>2 

function COMB = isbigger(A,B,val) 
    [X,Y] = meshgrid(A,B); 
    X = X(:); 
    Y = Y(:); 
    index = abs((X(:)-Y(:)))>val; 
    COMB = [X(index),Y(index)]; 
end 

OUTPUT:

C = 

2  6 
2  8 
3  6 
3  8 
11  2 
11  6 
11  8 
0  6 
0  8 
8  2 
+0

謝謝你的回答! – ransa