2013-08-08 2 views
-2

저는 MALTAB 함수를 가지고 있습니다 : x (1) -1; x (1 : n-1) 1]);이 Matlab을 벡터화합니다.

어떻게 이것을 풀 수 있습니까? 나는 그것이 무엇을 위해 테스트하고 있는지를 확실히 모르겠다!

아이디어가 있으십니까? 이 같은

+0

나는 (X> somearray & x> someotherarray)라는 것이 무엇을 의미하는지 모른다. 그것은 for x 또는 모든 x 테스트입니까? Btw, x 자체는 배열입니다! –

+0

네,하지만 CAT 인수를 얻는 차원이 x = [2,3,4,5,0,9,1]이면 사용할 수 없습니다. –

+0

'x'는 열 벡터 여야하므로'x = [2 , 3,4,5,0,9,1] ' –

답변

1

뭔가 : 에릭 언급 한 바와 같이

result = [] 

for i = 1:n 
    if i == 1 % special case, since x(-1) does not exist 
     x_below = x(1) - 1; 
    else 
     x_below = x(i - 1); 
    end 
    if i == n % special case, since x(n + 1) does not exist 
     x_above = x(n) - 1; 
    else 
     x_above = x(i + 1); 
    end 
    if x(i) > x_below && x(i) > x_above 
     result = [result, i]; %add found index to result 
    end 
end 

그래서, 그것은 이웃 한 후 큰 X의 모든 요소의 인덱스를 돌려줍니다. x(1)의 경우 x(1)이 항상 더 크도록 x(1) - 1의 '위조 된'하위 이웃이 만들어집니다. x (1)> x (2)이면 인덱스 1이 반환됩니다. 유사한 트릭이 x(n)에 대해 수행됩니다.

+0

^^ 완벽하게 작동합니다! Bas와 Eric 고맙습니다. 너 락! –

관련 문제