Loading
2015. 7. 25. 02:25 - 성돌

Mathematica에서 명령어를 뒤에서 사용하는 방법 (//방식으로 명령을 내리기)



Mathematica에 명령어를 사용하는 방법 중 뒤에서 명령어를 내리는 독특한 방법에 대해서 알아보자.
이는 내가 매우 좋아하는 방식이다.

뒤에서 명령어를 사용할 때, //방식으로 명령어를 사용하게 된다.
(이를 
Postfix라고 한다...)


먼저 상당히 일반적인 것부터 소개를 하자..
대부분의 코딩 프로그램이 이러한 형태를 가지고 있는데...
아래와 같은 형태로 명령을 하는 것이다.


사실 이렇게 적어놔서 더 뭔 말인지 모를 수도 있겠는데...
예를 들면 쉽다.

우리가 x라는 변수를 없애고자 하면,


라고 하면 된다.
여기서 Clear가 명령어에 해당하고, x는 명령을 당하는 대상일 것이다.

대부분 다 이렇게 하고, 이게 당연한데...
Mathematica는 한 가지 더 매우 편리한 옵션을 제공
한다.

바로... //방식으로 뒤에서 명령을 입력하는 것이다.

예를 들어, 위의 Clear라는 명령을 아래와 같이 //뒤에 Clear를 적음으로 수행할 수도 있다.


이건 사실 굉장히 편리하다.

이게 왜 편리하냐면...
여러가지 기능을 동시에 수행한다고 해보자.


예를 들어,
어떤 식에 Refine이라는 명령과 Simplify라는 명령과 Expand라는 명령을 순서대로 수행한다고 해보자.
기존 방식으로는 아래와 같이 해야한다.


그런데....이런 것들이 괄호를 사용하게 됨으로 복잡하게 보이고...
코딩이 복잡해질 수록... 앞뒤를 왔다갔다해야되서...
상당히 귀찮아지게 될 수 있다.

하지만 Mathematica안에서는 훨씬 간단하고 단순하게
괄호를 사용하지 않고 명령을 내릴 수 있는 것이다.


명령어의 구조가 훨씬 눈에 잘 보이지 않는가?
우선 괄호를 사용하지 않게 되기에... 상당히 편리할 때가 많다.



지금까지 경우는 아무 옵션없이 명령어만 사용한 것이지만
Mathematica에서 사용하는 모든 명령어는 옵션과 함께 //형태의 명령어를 사용할 수 있다.

이는 #와 &를 함께 사용해 줌으로 가능하다.

예를 들어, 선형회귀를 하는 함수인 LinearModelFit
아래와 같은 명령어 구조를 가진다.


그걸 #와 &를 이용해서 아래와 같이 //방식으로 명령어를 내릴 수 있다.


즉, 원래 '데이터'가 있던 위치에 #를 두고 맨 뒤에 &를 사용함으로 닫아주는 것이다.

Mathematica에서는 #와 &가 항상 쌍으로 등장한다는 것을 더불어
기억해두면 좋을 것이다.