IDL에 간단한 elseif 문을 얻으려고하고 있는데 시간이 지났습니다. MATLAB 코드는 다음과 같습니다.idl elseif 문제/혼란
a = 1
b = 0.5
diff = a-b
thres1 = 1
thres2 = -1
if diff < thres1 & diff > thres2
'case 1'
elseif diff > thres1
'case 2'
elseif diff < thres2
'case 3'
end
그러나 IDL 코드는 간단하지 않으며 구문을 올바르게 읽지 못하는 문제가 있습니다. 도움말 상태 : 구문 표현은 THEN 문 [ELSE 문] 또는 표현은 ENDIF
[ELSE 문 을 ENDELSE BEGIN] 그러나 여러 표현식을 사용하는 방법에 대한 예제를 제공 나던 및 문을 시작하면 경우 elseif. 나는 많은 변이를 시도하고 기울인다 그것을 맞은 얻는 것을 보인다.
누구든지 의견이 있으십니까? 여기 제가 시도한 것들이 있습니다 :
if (diff lt thres1) and (diff gt thres2) then begin
print, 'case 1'
endif else begin
if (diff gt thres1) then
print, 'case 2'
endif else begin
if (diff lt thres2) then
print, 'case 3'
endif
if (diff lt thres1) and (diff gt thres2) then begin
print, 'case 1'
else (diff gt thres1) then
print, 'case 2'
else (diff lt thres2) then
print, 'case 3'
endif
값이 임계 값과 같다면, 사건 중 어느 것도 실행되지 않습니다 –
그래, 당신이 IDL이 문제를 유발하는 논리가 아니라 실제 구문 때문입니다. IDL은 코드 시험으로 컴파일 및 실행되지 않습니다. 나는 보여주고있다. – nori