2017-03-31 11 views
2

Mathematica에서 날카로운 신호를 이해하는 데 문제가 있습니다. 변수에 대한 자리 표시 자로 # &을 이해합니다. 그러나 #1#2은 다음 코드에서 어떻게 이해할 수 있습니까?이 Mathematica 분할 함수의 샤프 기호 의미

x = {0, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1}; 
Split[x, #1 =!= 0 && #2 =!= 0 &] 

무엇 #1하고 여기 #2? 이 라인의 출력의 Split 버전 test 개의 변수를 취하는 함수 형태 Split[list,test], 인 것이

{{0}, {1, 1, 1}, {0}, {0}, {1, 1, 1}, {0}, {0}, {1}} 
+0

슬롯을 반환 정의

Split[list, Mod[#1,2] == Mod[#2,2]] 

용어 https://reference.wolfram.com/language/ref/Slot.html – agentp

답변

3

이다. 그래서

#1 =!= 0 && #2 =!= 0 & 

#1#2 변수 이름입니다 두 변수 순수 기능을위한 속기이다. 일반적


, Split은리스트를 가지고 "동일한"요소의 연속 실행에 분배 동일한 목록을 반환한다. 목록이 list={0,0,2,2,3,4,4,5,5,5,7} 경우 그래서, 다음 Split[list]

{{0,0}, {2,2}, {3}, {4,4}, {5,5,5}, {7}} 

를 산출하지만 어쩌면 당신은 두 가지 다른 "동일"수하는 것이 무엇을 의미하는지 정의합니다. 여기에 일반 Split[list,test] 함수가 들어 있습니다. test 함수는 두 개의 매개 변수를 사용하고 두 매개 변수가 동일한 경우 true를 반환하는 함수입니다. test 함수는 두 가지가 동일한 지 테스트합니다. 예를 들어, 주어진 테스트 함수

#1 =!= 0 && #2 =!= 0 & 

두 요소가 모두 0이 아니면 true를 반환합니다. 따라서 Split 함수는 요소가 0으로 실행되거나 nonzeros가 실행되는 경우 요소를 그룹화합니다.

또 다른 예를 들어, 동일한 패리티 (짝수 또는 홀수)를 가진 두 정수가 동일한 경우를 가정 해 보겠습니다. 그런 다음 분할 기능이 될 것 목록은 내가

{{0,0,2,2}, {3}, {4,4}, {5,5,5,7}} 
+0

감사입니다 응답을 위해. 나는 지금까지 그것을 알아 냈다. 그러나 변수가 정확히 무엇인지 말해 줄 수 있습니까? # 1은 각 분할 목록의 첫 번째 요소를 나타내며 마지막 요소는 # 2입니까? –