이전: 영속 변수, 상위 문서: 변수   [차례][찾아보기]


7.3 변수 상태

일회성 풀그림을 만들면, 명령 처리기에서 유효한 변수가 무엇인지 알기 좋습니다. who 함수와 형제 함수 whos, whos_line_format이 아래에서 보여주듯이 막기억장치에 무엇이 들어있는지에 대하여 서로 다른 정보를 안내해 줍니다.

str = "A random string";
who
 -| Variables in the current scope:
 -|
 -| ans  str
who
who 양상 …
who 선택지 양상 …
C = who ("양상", …)

현재 정의된 변수 중 주어진 양상에 맞는 것의 목록을 보여줍니다.

가능한 양상 구문은 clear 명령어에 기술된 것과 같습니다. 양상을 지정하지 않으면, 모든 변수 목록을 보여줍니다.

기본적으로 울안이 유효 범위인 변수만 보여줍니다.

아래는 유효한 선택지이지만, 섞어 쓸 수는 없습니다.

global

현재의 유효 범위가 아닌 전역 변수 목록을 보여줍니다.

-regexp

보여줄 변수가 일치할 양상을 정규 표현식으로 판단합니다. regexp 함수도 같은 양상 구문을 사용합니다.

-file

다음 매개변수를 기록철 이름으로 다룹니다. 지정한 기록철 안에서 변수를 모두 찾습니다. 기록철에서 변수를 읽어 올 때는 양상을 사용할 수 없습니다.

함수로써 호출하면, 주어진 양상에 맞는 변수 이름을 낱칸 배열에 넣어 반환합니다.

같이 보기: whos, isglobal, isvarname, exist, regexp.

whos
whos 양상 …
whos 선택지 양상 …
S = whos ("양상", …)

현재 정의된 변수 중 양상에 일치하는 변수의 자세한 정보를 제공합니다.

선택지와 양상 구문은 who 명령에서 사용하는 것과 똑같습니다.

각 변수에 대한 확장 정보는 아래 기본 공간 표에 요약됩니다.

Attr

변수의 속성입니다. 가능한 속성은 아래와 같습니다.

공란

유효 범위가 울안인 변수

a

자동 변수. 자동 변수는 argn 같은 해석기가 생성하는 변수입니다.

c

복소수 값 변수

f

정규 매개변수 (함수 매개변수).

g

유효 범위가 전역인 변수

p

영속 변수

Name

변수 이름입니다.

Size

변수의 논리 크기입니다. 스칼라는 1x1, 벡터는 1xN 또는 Nx1, 2차원 행렬은 MxN입니다.

Bytes

변수를 저장하기 위하여 현재 사용하는 막기억장치 용량입니다.

Class

변수의 분류입니다. double(배정도), single(단정도), char(문자), uint16(부호 없는 16두값), cell(낱칸), struct(구조체) 등입니다.

함수 whos_line_format으로 표에서 어떤 정보를 보여줄지를 맞춤 설정합니다.

whos을 함수로써 호출하면, 이름이 주어진 양상에 일치하는 변수의 정의를 담은 구조체 배열을 반환합니다. 구조체 기록란은 각 변수에 대하여 다음 내용을 기술합니다. 이름, 크기, 바이트, 분류, 전역, 희소, 복소수, 안은·안긴, 영속.

같이 보기: who, whos_line_format.

= whos_line_format ()
옛_값 = whos_line_format (새_값)
whos_line_format (새_값, "local")

whos 명령에서 사용하는 틀 문자열을 조회하거나 설정합니다.

아래는 전체 틀 문자열입니다.

%[modifier]<command>[:width[:left-min[:balance]]];

아래는 명령 순차입니다.

%a

변수 속성을 출력합니다.(g=전역, p=영속, f=정규 매개변수, a=자동 변수)

%b

변수가 차지하는 바이트 개수입니다.

%c

변수의 분류 이름을 출력합니다.

%e

변수가 품은 원소를 출력합니다.

%n

변수 이름을 출력합니다.

%s

변수의 차원을 출력합니다.

%t

변수의 자료형을 출력합니다.

모든 명령은 정렬 변경자를 포함할 수 있습니다.

l

왼쪽으로 정렬합니다.

r

오른쪽으로 정렬합니다.(기본)

c

열로 정렬합니다.(%s 명령에만 해당)

width 매개변수는 출력할 열의 최소 개수를 정하는 양의 정수입니다. 표시칸이 필요에 따라 자동으로 확장되므로 최댓값은 필요 없습니다.

매개변수 left-minbalance는 열 정렬 변경자가 ‘%s’ 명령과 함께 사용되었을 때에만 유효합니다. balance는 어귀 사이에서 정렬할 기록란 너비의 열 개수를 지정합니다. 가장 왼쪽에 있는 열부터 0으로 셉니다. left-min는 지정한 균형 열의 왼쪽에 기록란의 최소 너비를 지정합니다.

기본 형식은 아래와 같습니다.

" %a:4; %ln:6; %cs:16:6:1; %rb:12; %lc:-1;\n"

함수 안에서 "local" 선택지를 넣어 부르면, 함수와 함수가 부른 종속 절차의 변수가 지역적으로 바뀝니다. 함수가 종료되면 원래 변숫값이 되돌아옵니다.

같이 보기: whos.

막기억장치에 있는 변수를 표시하는 대신, 지정한 변수가 유효한지 검사할 수 있습니다. 이는 존재하는 변수에 의존하는 풀그림의 행동을 바꿉니다. 아래 예시가 이를 보여줍니다.

if (! exist ("meaning", "var"))
  disp ("The program has no 'meaning'");
endif
c = exist (이름)
c = exist (이름, 형식)

존재하는 이름이 변수, 함수, 기록철, 자료방, 분류인지 확인합니다.

부호 c를 아래 중 하나로 반환합니다.

1

이름이 변수입니다.

2

이름이 완벽하게 기록철 이름으로, 옥타브 경로에 있는 일반 기록철이거나, 옥타브의 경로(‘.m’를 첨부)에 있는 함수 기록철입니다.

3

이름이 옥타브 경로에 있는 ‘.oct’ 또는 ‘.mex’ 기록철입니다.

5

이름이 내장 함수입니다..

7

이름이 자료방입니다.

8

이름이 분류입니다.(참고: 현재 실행되지 않음)

103

이름이 기록철과 관련 없는 함수(명령줄에 입력한 함수)입니다..

0

이름이 존재하지 않습니다.

선택 매개변수 형식을 주면, 주어진 형식인 상징만 확인합니다. 가능한 형식입니다.

"var"

변수만 확인합니다.

"builtin"

내장 함수만 확인합니다.

"dir"

자료방만 확인합니다.

"file"

기록철과 자료방만 확인합니다.

"class"

분류만 검사합니다.(주의: 줄 수는 있지만, 아직 실행되지는 않습니다.)

형식을 주지 않고, 이름이 여러 곳과 일치하면, exist는 변수, 내장 함수, oct 기록철, 자료방, 기록철, 분류 순으로 우선하여 부호를 반환합니다.

옥타브 탐색 경로에 이름인 정규 기록철이 존재하면, exist가 2를 반환합니다. 탐색 경로에 없는 다른 형식의 기록철에 대한 정보는 함수 file_in_pathstat을 대신 섞어 사용하여야 합니다.

풀그림 짜기 안내: 결함이 많은 .oct/.mex 기록철에서 이름을 실행되면, exist 호출시 옥타브가 깨질 수 있습니다. 고성능을 유지하기 위해, 옥타브는 .oct/.mex 기록철을 자유롭게 놔두지 않고, 그 기록철 자체를 신뢰합니다.

같이 보기: file_in_loadpath, file_in_path, dir_in_loadpath, stat.

보통은 옥타브가 막기억장치를 관리하지만, 가끔은 수동으로 변수를 막기억장치에서 지워야 하는 경우가 있습니다. 대게는 막기억장치의 많은 부분을 차지하는 변수와 작업할 때에 그렇습니다. 전산기가 전기·전자 기술자 협회 떠돌이 소수점 형식을 사용하면, 아래 풀그림이 128 MB짜리 행렬을 막기억장치에 할당합니다.

large_matrix = zeros (4000, 4000);

이 변수를 막기억장치에서 껴안으면 아마 다른 계산의 속도가 느려지므로, 변수를 제거하여야만 합니다. clear 또는 clearvars 함수가 제거 작업을 수행합니다.

clear
clear 양상
clear 선택지 양상

상징표에서 주어진 양상과 일치하는 이름을 지웁니다.

양상은 아래 특별 문자를 포함하여도 됩니다.

?

모든 홑문자와 일치합니다.

*

0개 이상의 문자와 일치합니다.

[ 목록 ]

목록에 나열한 문자와 일치합니다. 첫 글자가 !이나 ^이면, 목록에 나열한 문자를 제외한 문자와 일치합니다. 예를 들어, 양상 [a-zA-Z]은 모든 영문 대소문자와 일치합니다.

예를 들어, 명령

clear foo b*r

foo와, 이름이 글자 ‘b’로 시작하고, ‘r’로 끝나는 모든 이름을 지웁니다.

아무 매개변수 없이 clear를 호출하면, 모든 사용자 정의 변수가 현재 작업 공간에서 지워집니다.(예: 울안 변수) 존재하는 모든 전역 변수는 현재 작업 공간에서 더이상 보이지 않지만, 전역 작업 공간에는 계속 남습니다. 함수는 이 형태의 clear에 영향을 받지 않습니다.

아래 선택지는 긴 형태와 짧은 형태 모두 가능합니다.

all, -all, -a

모든 사용자 정의 울안 변수·전역 변수와 모든 함수를 상징표에서 지웁니다.

-exclusive, -x

양상과 일치하지 않는 변수를 지웁니다.

functions, -functions, -f

함수 상징표에서 함수 이름을 지웁니다. 영속 변수는 안은 함수가 mlock으로 잠기지 않으면 자체 기본값으로 재초기화됩니다.

global, -global, -g

전역 변수 이름을 지웁니다.

variables, -variables, -v

울안 뱐수 이름을 지웁니다.

classes, -classes, -c

분류 구조체 표와 모든 객체를 지웁니다.

-regexp, -r

양상을 정규 표현식으로 다루고, 모든 일치를 지웁니다.

-exclusive-regexp를 제외하면, 줄표 없이 선택지를 길게 이어도 됩니다. -exclusive를 제외하면,  다른 선택지 한 개만 나타날 수 있습니다. 모든 선택지는 반드시 모든 양상 앞에 있어야 합니다.

풀그림 짜기 안내: 명령 clear 이름이름으로 변수와 (변수 이름 때문에 가려진) 함수가 둘다 있으면, 변수만 지웁니다. 예를 들어, foo라는 함수를 정의하고, 할당문 foo = 2으로 foo 변수를 만들어, 함수를 가린다고 칩니다. 명령 clear foo를 한 번 실행하면, 변수 정의를 지우고, 함수로서의 foo 정의를 복구합니다. clear foo를 한 번 더 실행하여야 함수 정의도 지웁니다.

같이 보기: who, whos, exist, mlock.

clearvars
clearvars 양상
clearvars -regexp 양상
clearvars … -except 양상
clearvars … -except -regexp 양상
clearvars -global …

막기억장치에서 주어진 양상에 맞는 변수를 지웁니다.

양상은 아래 특별 문자를 포함하여도 됩니다.

?

모든 홑문자와 일치합니다.

*

0개 이상의 문자와 일치합니다.

[ 목록 ]

목록에 나열한 문자와 일치합니다. 첫 글자가 !이나 ^이면, 목록에 나열한 문자를 제외한 문자와 일치합니다. 예를 들어, 양상 [a-zA-Z]은 모든 영문 대소문자와 일치합니다.

-regexp 매개변수를 주면, 매개변수 뒤 양상을 정규 표현식으로 다루고, 모든 일치를 지웁니다.

-except 매개변수를 주면, 매개변수 뒤 양상과 일치하는 변수를 지우지 습니다.

-global 매개변수를 주면, 모든 양상을 울안 변수 대신 전역 변수에 적용합니다.

아무 매개변수 없이 호출하면, clearvars이 모든 울안 변수를 지웁니다.

예시 부호:

'x'로 시작하는 변수와 "foobar"라는 변수를 모두 지웁니다.

clearvars x* foobar

"foobar"라는 변수와 정규 표현식을 사용하여 'x' 또는 'y'로 시작하는 모든 변수를 지웁니다.

clearvars foobar -regexp ^x ^y

"foobar"를 제외한 모든 변수를 지웁니다.

clearvars -except foobar

"foo"로 시작하고, "bar"로 끝나지 않는 모든 변수를 지웁니다.

clearvars foo* -except -regexp bar$

같이 보기: clear, who, whos, exist.

pack ()

매트랩에서, 작업 공간의 막기억장치 영역을 정리합니다.

호환을 위하여 제공되며, 옥타브에서는 작동하지 않습니다.

같이 보기: clear.

함수와 변수의 기록철 체계에서의 위치 같은 정보도 옥타브에서 얻을 수 있습니다. 풀그림을 개발할 때에나 유용한 기능이며, 풀그림 안에서는 별 쓸모가 없습니다.

type 이름
type -q 이름
글월 = type ("이름", …)

기록철, 함수(m 기록철), 변수, 연산자, 예약어인 이름의 정보를 보여줍니다.

type은 일반적으로 함수나 변수 등의 이름의 범주를 설명하는 줄을 머리말에 둡니다. -q 매개변수를 주면, 이런 머리말을 쓰지 않습니다.

출력 변수가 없으면, 화면에 내용을 보여줍니다. 출력 변수가 있으면, 각 원소가 요청한 함수에 대한 내용인, 낱칸 배열인 문자열을 반환합니다.

which name …

이름의 형을 반환합니다.

이름이 함수 기록철에서 정의되면, 해당 기록철의 전체 이름도 표시합니다.

같이 보기: help, lookfor.

what
what 자료방
w = what (자료방)

자료방에 있는 옥타브의 특정 기록철의 목록을 보여줍니다.

자료방을 주지 않으면, 현재 자료방을 사용합니다.

출력 매개변수를 주면, 찾은 기록철을 구조체 w에 넣어 반환합니다. 구조체는 아래 기록란을 포함합니다.

path

자료방의 경로 전체입니다.

m

m 기록철을 담은 낱칸 배열입니다.

mat

mat 기록철을 담은 낱칸 배열입니다.

mex

mex 기록철을 담은 낱칸 배열입니다.

oct

oct 기록철을 담은 낱칸 배열입니다.

mdl

mdl 기록철을 담은 낱칸 배열입니다.

slx

slx 기록철을 담은 낱칸 배열입니다.

p

p 기록철을 담은 낱칸 배열입니다.

classes

 분류 자료방을 담은 낱칸 배열입니다.(@classname/)

packages

꾸러미 자료방을 담은 낱칸 배열입니다.(+pkgname/)

호환 안내: 옥타브는 mdl, slx, p 기록철 및 꾸러미 자료방을 지원하지 않습니다. what은 언제나 이 항목에 대하여 빈 목록만 반환합니다.

같이 보기: which, ls, exist.


이전: 영속 변수, 상위 문서: 변수   [차례][찾아보기]