기본 작업공간 (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 뒤에 그 변수의 이름을 써 주면 된다.
전역 공간은 기본 작업 공간과 함수 간 혹은 함수들 사이에 공통으로 사용되는 변수를 관리하는데 이용된다. 이것에 대해서는 함수를 설명하는 부분에서 더 자세히 언급하겠다.
댓글 없음:
댓글 쓰기