2010-06-24 17 views
2

我想對一個數組進行聚類,這個數組包含一些角度我想計算這些度數之間的差值並在這個數組之間選擇一個組,這個組應該有最大數量和差異該成員之間的比例不應大於具體數字。在MATLAB中拉一個矩陣的子集

,例如,如果特定數量爲 和陣列是

[10 20 30 40 100 120 140] 

答案應該是

[10 20 30 40] 

100- > = 因此它不包括在內。

回答

0
a = [10 20 30 40 100 120 140]; #initial array 
b = []; #result array 
s = 30; 
for i = 1:length(a) 
    if abs(a(i) - s) < s 
     b = [b a(i)]; 
    end 
end 
+10

'B = A(ABS(AS)的 Amro 2010-06-24 01:34:10

+1

@Amro:不能給予好評這個足夠 - 這絕對是規範Matlabesque這樣做的方式。你可以提供這個作爲一個單獨的答案嗎? – 2011-01-07 08:48:56

5

一個單行溶液:

a = [10 20 30 40 100 120 140]; 
s = 30; 

b = a(abs(a-s) < s)