2015년 6월 17일 수요일

싸이랩(scialb)의 기본(base) 작업공간과 전역(global) 작업공간

기본 작업공간 (base workspace)

 먼저 workspace 의 개념부터 설명할 필요가 있다. Scilab을 사용하다보면 여러 객체(행렬, 문자열, 구조체, 함수, 등등)를 변수에 담아서 사용하게 되며 한 번 생성된 변수는 일부러 삭제하지 않는 한 언제든지 접근하여 값을 읽거나 변경할 수 있다. 이렇게 객체가 저장되는 메모리 공간을 작업공간(workspace)라고 칭하며 현재 작업공간 내의 변수들은 Variable brower 창에서 항상 확인할 수 있다.
[그림 1] variable browser 에 방금 생성한 변수 a와 B가 표시되어 있다.
특별히 Scilab을 처음 실행시킬 때 사용되는 작업 공간을 기본 작업 공간(base workspace)라고 칭하도록 하겠다.
 작업 공간과 관련된 명령어들을 다음 표에 정리하였다.
[표 1] workspace 와 관련된 명령어들
명령어
기능
who
모든 변수들의 리스트 출력
who_user
모든 사용자 변수들의 리스트 출력
whos
모든 변수들의 리스트와 특성(type, size) 출력
whereis(‘function_name’)
함수가 포함된 라이브러리명 출력
global a,b,c…
global(‘a’,’b’,’c’,...)
전역공간에 변수 a,b,c를 생성
(위와 상동)
isglobal(var)
변수 var 가 전역변수이면 %T 반환
clear
clear a, b, fA, fB, … 또는
clear(‘a’, ‘b’, ‘fA’, ‘fB’, …)
비보호된 모든 변수와 함수를 workspace에서 제거
지정된 (비보호된) 변수와 함수를 제거
(위와 상동)
clearglobal
clearglobal a,b,c…
clearglobal(‘a’, ‘b’, ‘c’, …)
전역공간의 모든 변수 삭제
전역공간의 변수 a,b,c,... 삭제
(위와 상동)
type(a)

typeof(a)

isdef(var, [, strLoc])

exists(str [, strLoc]))

기본 작업영역의 모든 변수/함수를 제거하려면 clear 명령을 내리면 되고 특정한 변수/함수만을 제거하려면 clear 뒤에 그 변수의 이름을 써 주면 된다.

전역 작업 공간 (global workspace)

 전 절의 명령어 표에 보면 global 이라는 명령어가 있는데 이것은 기본 작업 공간과는 별개의 전역 공간 (global workspace)에 변수를 생성하는 명령이다. 예를 들어서 다음과 같이 명령을 내리면
>> global ga ⏎
전역공간에 변수 ga가 생성되며 동시에 기본 작업공간에 이 전역 변수를 참조할 수 있는 참조가 생기게 된다. 기본 작업 공간에 생기는 변수 ga는 지역 변수가 아니라 전역 변수로의 참조라는 것을 이해하여야 한다.
[그림 2] 글로벌 변수 ga의 생성

따라서 다음과 같은 명령을 내리면

>> ga=%pi ⏎
기본 작업 공간의 참조 변수 ga를 통해서 전역 변수 ga를 %pi 로 초기화 시킬 수 있다.

 순서를 바꿔서 만약 이미 있는 지역 변수를 나중에 전역 변수로 선언해도 비슷한 일이 일어난다. 변수 값이 전역 작업공간으로 옮겨지며 기존의 지역 변수는 전역 변수로의 참조로 변환된다. 이 점을 이해하여야 한다.
[그림 3] 전역 변수로의 전환

전역 공간의 모든 변수/함수를 제거하려면 clearglobal 명령을 내리면 되고 특정한 변수/함수만을 제거하려면 clearglobal 뒤에 그 변수의 이름을 써 주면 된다.

 전역 공간은 기본 작업 공간과 함수 간 혹은 함수들 사이에 공통으로 사용되는 변수를 관리하는데 이용된다. 이것에 대해서는 함수를 설명하는 부분에서 더 자세히 언급하겠다.


댓글 없음:

댓글 쓰기