2011-12-19 1 views
0

EDIT 다음 코드를 단순화하는 방법 :데이터를 최소화하기 위해 MATLAB에서 짧은 코드를 받고 해당 인덱스

if(x(a) > x(b)) 
    s = b; 
    e = a; 
else 
    s = a; 
    e = b; 
end 

을 나는 짧은 같이 얻을 수 있습니다 :

s = a; 
e = b; 
if(x(a) > x(b)) 
    s = b; 
    e = a; 
end 

감사합니다!

편집

h = [a b]; 
[~, idx] = min([x(a) x(b)]); 
s = h(idx) 
e = h(3-idx) 
+0

왜 비교 전에's'과'e'를 설정합니까? 처음 두 줄을 없애면 그만큼 간단 해집니다. – mtrw

+0

이미 단축 되었기 때문에 :) 내 편집을보세요 :) – tim

+0

'a'와'b'를 통해 내부에서 이렇게하고 있습니까? 그렇다면 더 좋은 방법이있을 것입니다 ... – Edric

답변

1

당신은 확실히 당신의 코드는 당신이 그것을하고 싶었던 않는거야?

은 아마 당신은

s = min([x(a),x(b)]); 
e = max([x(a),x(b)]); 

편집을 시도하려는 :이 OK 당신이 가고,

r = [find(x==max(x), find(x==minx)]; 

당신이 s 다음 e로 필요한 경우 r에 필요하지만이 :

s = r(1); 
e = r(2); 
+0

'x (a)'와'x (b)'가 최소화되는 실제 값을 원하지 않는다. 나는'x'의 작은 값의 인덱스를's'로 설정하고 더 큰 값의 인덱스를'e'로 설정하려고합니다. 내 원래 게시물의 편집을보세요! – tim

관련 문제