아래 포스팅에서 C/C++ 에서의 static 키워드와 유사한 기능을 하는 persistent 에 대해 설명 드렸었는데요.
2011/03/27 - [MATLAB] - MATLAB persistent
오늘은 persistent 사용시의 유의 사항에 대해 설명 드리려 합니다.
persistent 를 사용하는 반복적인 simulation 을 할 때 command 창에서 단순히 clear 를 하면 persistent 로 설정된 keyword 의 경우에는 clear 되지 않습니다.
clear 는 workspace 의 변수만 memory 상에서 해제를 하므로 function 안에서 persistent 로 설정된 변수의 경우에는 해제가 되지 않는 것 입니다.
위 링크의 이전 포스팅에서 사용한 함수 persistent_func() 를 이용하여 예를 들어 보죠.
위 예에서 clear 를 했음에도 c 값이 이전 값 12에서 연속적으로 증가하는 것을 보실 수 있습니다.
함수 내에서 persistent로 설정된 변수를 정상적으로 clear 하기 위해서는 함수를 메모리 내에서 해제 해 줘야 합니다.
다음과 같이 clear functions 를 사용하거나 clear all 을 사용하는 경우 함수 내에서 persistent 로 설정된 변수도 정상적으로 clear 되는 것을 확인 할 수 있습니다.
안정적인 코드 실행을 위해서는 MATLAB script 의 시작에 항상 clear all 을 해주는 게 좋은 습관 일 것 같습니다.
'programming language > MATLAB' 카테고리의 다른 글
MATLAB run configuration 을 통한 실행 (0) | 2012.08.15 |
---|---|
MATLAB Conditional Breakpoints (2) | 2012.08.06 |
MATLAB 단축키 설정 백업 (0) | 2012.08.05 |
MATLAB Fixed point toolbox, demo버그? (0) | 2012.08.04 |
MATLAB 파일이름 다룰때 유용한 함수들 fileparts, fullfile, filesep (0) | 2012.07.01 |
MATLAB 그래프 자동 업데이트 linkdata (0) | 2012.06.30 |
MATLAB assert() 함수 (0) | 2012.06.28 |
MATLAB 이미지 gray scale 변환 (7) | 2012.06.27 |
댓글