mathematica는 기준을 만족하는 목록의 요소를 가져 오는 "select any"같은 것을 가지고 있습니까?Mathematica에서 "Select any"를 선택하십시오
답변
음, 에릭의 대답의 단점은 을 그것은리스트의 모든 요소에 대해 OddQ를 실행한다는 것입니다. 제 전화는 상대적으로 비용이 많이 들며, 너무 자주 계산하는 것은 잘못되었습니다. 또한, 임의성의 요소는 분명히 불필요합니다. 첫 번째 것은 저와 잘 맞습니다.
그럼, 어떻게
SelectAny[list_List, criterion_] :=
Catch[Scan[ If[criterion[#], Throw[#, "result"]] &, list];
Throw["No such element"], "result"]
그리고
SelectAny[{1, 2, 3, 4, 5}, OddQ]
반환 1.
나는 아직도 무언가를하고자하는이 매스 매 티카에 내장 된
에 대해. 집에서 만든 양조 기능을 사용하면 많은 직접적인 이익을 가져 오지 않고 프로그램을 확대 할 수 있습니다."선택"은 조건을 만족하는 모든 요소를 가져옵니다. 따라서
In[43]:= Select[ {1, 2, 3, 4, 5}, OddQ ]
Out[43]= {1, 3, 5}
아니면 일치하는 요소 하나를 무작위로 선택하겠습니까? 나는 내장 아무것도 모르는,하지만 당신은 매우 신속하게 정의 할 수 있습니다 :
Any[lst_, q_] :=
Select[ lst, q] // (Part[#, 1 + Random[Integer, Length[#] - 1]]) &
어떤 당신이 사용할 수있는 동일한 방법 ::
이In[51]:= Any[ {1, 2, 3, 4, 5}, OddQ ]
Out[51]= 3
당신은 Scan
및
fstp[p_, l_List] := Scan[ [email protected]# && [email protected]# &, l ]
Return
비교적 쉽게 할 수있는 그래서
In[2]:= OddQ ~fstp~ Range[1,5]
Out[2]= 1
In[3]:= EvenQ ~fstp~ Range[1,5]
Out[3]= 2
정말 티카는 게으르게 평가 표현을 할 몇 가지 옵션을 가질 수 바랍니다. 그냥 결과의 최대 수 인, Select
에 세번째 인수를 일치하는 첫 번째 요소 다음에 돌려 사용하려는 경우와 같은 하스켈 같은 게으른 언어에서, 당신은 단지 일반
fstp p = head . filter p
일반적으로 기호에 HoldFirst/HoldRest/HoldAll 속성을 사용하여 지연 평가를 적절하게 근사시킬 수 있습니다. 또한 썽크로 줄 바꿈으로써 지연되는 익숙한 트릭을 얻을 수 있습니다. – Pillsy
로 정의 할 수 있습니다 반환. 그래서 당신은 그냥 여러 반환 값, 또는 하스켈의 Maybe
유형에 해당하는 부족하기 때문에 티카는 답을 찾기 위해 실패를 신호하는 좋은 방법이 부족
Any[list_List, crit_, default_:"no match"] :=
With[{maybeMatch = Select[list, crit, 1]},
If[maybeMatch =!= {},
First[maybeMatch],
default]
할 수 있습니다. 내 솔루션은 사용자가 지정할 수있는 기본값을 갖는 것이므로 유효한 대답과 쉽게 구별되는 것을 전달할 수 있습니다.
Select 기능은 제공이 내장, 선택 항목의 최대 수를 나타냅니다 세 번째 인수를 통해 :
In[1]:= Select[{1, 2, 3, 4, 5}, OddQ, 1]
Out[1]= {1}
없음 일치하는 경우 :
In[2]:= Select[{2, 4}, OddQ, 1]
Out[2]= {}
편집 : 죄송합니다, 놓친 nes1983은 이미 이것을 언급했다.
- 1. Crystal Reports SELECT 문을 선택하십시오.
- 2. MySQL의 SELECT 범위를 선택하십시오. 예 : 1,2,3,4, ..., n;
- 3. xsd : any를 네임 스페이스와 함께 사용하려면 어떻게해야합니까?
- 4. WCF 데이터 계약에서 xs : any를 처리하는 방법
- 5. Mathematica에서 인접 요소를 비교하는 "선택"
- 6. Mathematica에서 소수점을 포함하는 영숫자 (참조) 숫자를 Mathematica에서 문자열로 변환하는 방법
- 7. Mathematica에서 문자열 검증
- 8. mathematica에서 분포 생성하기
- 9. Mathematica에서 대용량 데이터 처리
- 10. Mathematica에서 잘린 메시지보기
- 11. Mathematica에서 파일 입력 출력
- 12. Mathematica에서 java 프로젝트 호출하기
- 13. Mathematica에서 부분 평가
- 14. Mathematica에서 MySQL 데이터베이스 사용하기
- 15. Mathematica에서 환경 변수 설정
- 16. Mathematica에서 팔레트를 찾는 방법?
- 17. mathematica에서 목록 색인 생성
- 18. Mathematica에서 행렬을 재구성하는 방법
- 19. Mathematica에서 일반적인 용어 수집하기
- 20. Sprintf는 Mathematica에서 이에 상응합니까?
- 21. Mathematica에서 복잡한 함수를 그려야합니다.
- 22. Mathematica에서 범례 플로팅하기
- 23. MySQL에서 UNION select 쿼리에서 테이블 이름을 열로 선택하십시오.
- 24. 드롭 다운/select - list에서 이미 선택된 항목을 선택하십시오.
- 25. flex에서 comboBox의 select 필드를 기반으로 viewstack 컨테이너 ID를 선택하십시오.
- 26. Datagrid를 선택하십시오. 행을 선택하십시오.
- 27. SQL을 선택하십시오
- 28. 'X'를 선택하십시오.
- 29. Mathematica에서 내부 루프 계산 최적화
- 30. mathematica에서 잘못된 플롯 문제가 발생했습니다.
Mathematica는 이미 많은 수의 내장 함수를 포함하고있는 것처럼 보입니다. 어떤 단계에서, 제 생각에, 모든 것을 상자에서 제공하지는 않는다고 받아 들여야합니다. –