본문 바로가기
programming language/MATLAB

MATLAB persistent 주의 할 점

by __observer__ 2012. 7. 3.
반응형

아래 포스팅에서 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 을 해주는 게 좋은 습관 일 것 같습니다.


반응형

댓글