Loading
2014. 8. 3. 10:37 - 성돌

[Mathematica] for문 역할을 하는 Do명령어!



프로그래밍을 하다
 Matlab의 For문과 같이 동일한 작업을 반복적으로 수행해주어야 하는 경우가 존재하는데, 
물론 Mathematica에서도 이러한 기능을 수행해주는 매우 간편한 함수가 제공된다.

바로 Do라는 명령어인데, 사용방법이 Matlab과는 약간 다르지만 매우 쉽다. 

명령어의 구조는 아래와 같다.


하고자 하는 작업이라고 적은 부분에는 그야말로 하고 싶은 걸 아무거나 하면 된다. 

그리고, 하고자 하는 작업에 들어간 i라는 변수가 'i의 시작값'에서 'i의 최종값'까지 1씩 증가하면서 반복작업을 수행하게 된다. 
물론, 1씩 증가하는 것이 아니라 2씩 증가하는 것도 3씩 증가하는 가능한데,
이는 Mathematica 홈페이지 설명을 참고하도록 하자.

아무튼 전반적인 개념은 Matlab의 For문과 완전히 같은 개념이라 쉽게 이해가 될 거라고 생각된다.



이해를 돕기 위한 예로,
i를 입력값으로 가지는 함수의 함수로 정의된 100 x 1 행렬 A을 만든다고 생각해보자.

그리고 우리의 함수는 매우 간단한 i+10이라는 형태를 가졌다고 생각해보자
(물론 적분과 같은 아무 함수나 해도 상관없다).

이를 수행해주기 전에 우선 A라는 100 x 1 행렬을 먼저 만들어주도록 하자
(행렬 A가 만들어지지 않았는데, 함수값을 대입하라는 명령어가 사용되면 오류가 나기에)

함수값을 대입하기전에, 임시로 모든 성분이 0인 100 x 1행렬 A를 만들도록 하자. 
아래와 같이 ConstantArray라는 명령어를 사용한다.


그렇다면 우리가 원하는 행렬 A는 아래와 같이 A를
Do명령어로 다시 정의하여 줌으로 만들어지게 된다.