2017-12-08 33 views
2

조건부 표현 cE = ConditionalExpression[ Value, Condition ]이 주어지면 어떻게하면 cE의 조건을 추출 할 수 있습니까?조건부 표현식의 조건 가져 오기

색인 생성을 시도했지만 도움이되지 않았습니다.

+0

특정 예 필요하다. 그 [ce] [2]] 작동합니까? – agentp

+0

어, 네 말이 맞아. 그것은 중첩 된 표현이었고 너무 일찍 한 레벨을 빠져 나갔다. – loki

답변

2

더 복잡한 상황에서 사용할 수있는 더 깨끗한 버전을 제공하는 것이 흥미로운 것일 수 있습니다.

       1 
Out[]= ConditionalExpression[-----, Re[n] > -1] 
          1 + n 

조건 Re[n] > -1을 추출하려면 당신이 사용할 수 있습니다 : 인쇄하는

In[]:= FirstCase[ce, ConditionalExpression[_, c_] :> c, Missing[], {0,-1}] 

:

결과는 다음과 ConditionalExpression 공식 문서의 예를

In[]:= ce = Integrate[x^n, {x, 0, 1}] 

을 고려

Out[]= Re[n] > -1 

귀하의 의견에 당신이 중첩 된 표현을 언급했는데, 이전 접근법도 이와 같이 작동합니다. 예를 들어 : 패턴이 발견되지 않는 경우

In[]:= FirstCase[{{5, 6, ce, 1}}, ConditionalExpression[_, c_] :> c, Missing[], {0,-1}] 

여전히

Out[]= Re[n] > -1 

를 반환 명령 부드럽게 Missing[]를 반환합니다. Sin[6]와 예를 들어 :

In[]:= FirstCase[Sin[6], ConditionalExpression[_, c_] :> c, Missing[], {0,-1}] 

출력은 :

Out[]= Missing[]