본문 바로가기
programming language/SCILAB

Scilab 함수 작성 및 사용방법

by __observer__ 2013. 9. 21.
반응형

MATLAB 을 비롯한 대부분의 프로그래밍 언어들은 함수를 만들어서 사용할 수 있는데요.

 

MATLAB 과 유사한 수치 분석 프로그램인 Scilab 역시도 함수를 만들어서 사용할 수 있습니다.

 

MATLAB 을 사용해 보셨던 분이라면 Scilab 에서 함수 만들기는 너무나 쉬운데요~

 

함수의 정의는 다음과 같습니다.

 

function [a, b] = funcTest(x)

a=length(x);

b=x.*2;

endfunction

 

함수의 시작에는 MATLAB 과 마찬가지로 function 이라는 키워드를 적어주고~ 함수의 끝에는 endfunction이라고 적어 줍니다.

 

a, b 가 출력이고~ x 가 입력 인자입니다. 인자 들은 쉼표(,) 로 구분해 줘야 합니다. 함수이름은 funcTest 이고 해당 함수를 funcTest.sci 라는 파일 이름으로 적어줬습니다.

 

Scilab 에서는 함수는 보통 sci 확장자로 만듭니다.  


2012/01/12 - [programming language/SCILAB] - SCILAB 간단 사용법


위 함수의 내용은 x 라는 입력에 대해 길이를 구해서 a 에 리턴하고~

 

X 에 2 배를 해서 b 에 출력하는 함수 입니다.




다음으로 위 함수를 이용하는 방법에 대해 설명 드립니다.

 

MATLAB 등에서는 MATLAB path 내에 함수만 있다면 그냥 바로 사용할 수 있는데 Scilab 은 그렇지 않습니다.

 

같은 디렉터리에 위 함수가 있어도 바로 사용할 수 없습니다.

 

바로 사용하려 하면 다음 그림과 같이 Undefined variable: funcTest 라는 에러를 볼 수 있는데~ funcTest () 함수는 말 그대로 정의 되지 않은 함수라는 겁니다.

 

Scilab 에서 함수는 항상 execution 을 해줘야 사용 할 수 있습니다.

 

아래 그림과 같이 세 개 중의 하나를 선택해서 실행 해주면 됩니다.

 

이제 방금 만들었던 funcTest () 라는 사용자 함수가 정상적으로 동작하는 것을 확인 할 수 있습니다.

 

다음으로 console 에서 실행 시키는 게 아닌 다른 실행 파일에서 함수를 사용할 때는 C/C++ 코드에서 include 하듯이 함수 사용 전에 execution 하는 문장을 하나 넣으면 됩니다. exec () 함수를 사용하고~ 다음과 같이 정의 합니다.   

exec(path [,mode])


위 정의에서 path 는 말 그대로 execution 하고자 하는 함수의 파일 path 이고 mode 는 실행 모드를 의미 합니다.

 

같은 폴더 내에 있을 때는 full path 를 적지 않고 아래 실행 예처럼 함수 이름만 적어줘도 무방 합니다.

 

mode 는 그 실행 방법에 따라 8 가지 정도의 옵션이 있더군요.

 

Console 에 그 내용을 표시 할지 말지 --> 로 표시되는 프롬프트를 표시 할지 말지 와 같은 것에 대한 내용인데~

 

저는 주로 옵션을 안 붙이거나 -1을 붙여서 console 창에 안 나오게 하는 편입니다.

 

아래 두 가지 예를 보면 default 옵션에서는 그 내용이 console 에 표시 되지만~ -1 옵션을 붙이면 내용은 표시되지 않는 것을 확인 할 수 있습니다.

 

 

Console 에 결과가 표시 되도록 하기 위해 Ctrl+L 을 눌러서 실행 시켜보면 다음과 같이 정상적으로 실행되는 것을 확인 할 수 있습니다.


반응형

댓글