2015년 7월 20일 월요일

싸이랩(scialb)의 for 반복문

 Scilab의 for 명령은 반복을 수행하기 위해서 사용되며. for 와 end 사이의 명령어들을 주어진 변수값을 가지고 반복 수행한다. 간단한 예를 들면 다음과 같다.
--> for n=1:5, disp(n), end

이 명령은 disp(n)이라는 명령을 반복해서 수행하는데 다음과 같은 결과를 표시한다.

         1.
         2.
         3.
         4.
         5.
 
이 예제에서 반복은 벡터에 대해서 수행되었다. 이전에 콜론(:) 연산자는 행벡터를 생성한다고 설명한 바 있다. 따라서 위의 예는 다음과 완전히 동일하다.
--> for n=[1 2 3 4 5], disp(n), end
하지만 전자의 경우가 훨씬 더 간략하므로 만약 등간격의 변수들에 대한 반복을 수행한다면 전자와 같이 사용하는 것이 더 일반적이다. (1부터 1000까지 반복하는 경우라면 후자같이 사용하지는 못할 것이다.)
 만약 1부터 10까지의 숫자 중 홀수에 대해서만 반복을 수행하고 싶다면 다음과 같이 하면 될 것이다.

--> for n=1:2:10, disp(n), end
 
그려면 화면에는 1부터 시작해서 하나씩 건너 뛴 숫자들을 표시할 것이다.

         1.
         3.
         5.
         7.
         9.
 
증분값을 음수로 주면 역순으로 수행할 수도 있다. 예를 들어서

--> for n=5:-1:1, disp(n), end
이라고 하면 화면에 5부터 1까지 역순으로 표시되는 것을 확인할 수 있다.
 for 반복문에서 사용되는 변수값은 꼭 정수뿐만 아니라 다양한 값이 될 수 있다. 실수의 예를 들면 다음과 같다.
--> for n=linspace(0,1,5),disp(n),end
    0.  
    0.25  
    0.5  
    0.75  
    1.  
또는 다음과 같이 실수가 아닌 경우도 된다.

--> for n=[0.1, %i, %pi, %e],disp(n),end
    0.1  
    i    
    3.1415927  
    2.7182818
 
반복 변수에 행렬이 지정될 때에는 그 행렬의 각각의 열벡터로 반복을 수행한다. 예를 들어서
--> for n=[1 2 3;4 5 6], disp(n), end
라는 반복문의 경우 세 번 반복이 수행되는데 각각의 반복문에서 n변수의 값은 [1;4], [2;5], [3;6], 즉 첫 번째 열, 두 번째 열, 그리고 세 번째 열이 된다. 따라서 결과는 다음과 같다.

   1.  
   4.  
   2.  
   5.  

   3.   
   6.  


댓글 없음:

댓글 쓰기