2010-06-24 3 views
2

배열을 클러스터하려면이 배열에는 이러한 각도의 차이를 계산하고이 배열 사이에 하나의 그룹을 선택하려면이 그룹에는 최대 개수와 차이가 있어야합니다 그 구성원 사이에 특정 번호보다 커서는 안됩니다. 예MATLAB에서 행렬의 하위 집합을 당기기

특정 번호 30 이고 배열

[10 20 30 40 100 120 140] 

응답이 있어야 경우

[10 20 30 40] 

100- 30> = 30 때문에 포함되지 않는다.

답변

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는 = (같은 복근() Amro

+1

@Amro :이 충분히 찬성 투표 할 수 없습니다 -이 확실히 정규 Matlabesque입니다 그것을하는 방법. 이 답변을 별도의 답변으로 제공해 주실 수 있습니까? –

5

한 줄 솔루션 :

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

b = a(abs(a-s) < s) 
관련 문제