Simulink 를 사용하면서 shift register 가 필요한 경우가 종종 있는데 개인적으로는 unit delay 를 사용하여 shift register 를 구성하곤 합니다. 그런데 shift register 의 사이즈가 얼마 안된다면 그냥 노가다로도 만들수 있지만 그 사이즈가 커 진다면 이렇게 일일이 만들어서 사용하는것이 힘들더군요. 그래서 오늘은 unit delay 를 사용한 shift register 를 자동으로 만들어주는 스크립트를 소개하려 합니다.


shiftRegisterGeneration 함수를 만들었고 코드는 아래와 같습니다.



아래 명령어는 shiftRegisterGeneration 함수를 사용하여 15 사이즈의 shift register 를 만드는 명령어 입니다. MATLAB Command Window 에서 아래 명령을 실행하면

shiftRegisterGeneration(15)

아래와 같이 ShiftRegister15 라는 이름의 subsystem 이 만들어 지고~

해당 subsystem 을 들어가 보면 아래와 같이 unit delay 로 구성된 shift register 가 만들어 집니다.



Simulink 를 사용하다 보면 여러 Scope 를 여는 경우가 종 종 있습니다.

 

이러한 경우 한번에 Scope 를 다 닫는 명령어가 있나 해서 찾아보니 아래 주소에 그 방법이 나와 있더군요.

 

https://kr.mathworks.com/matlabcentral/answers/94334-how-can-i-programmatically-close-simulink-scope-windows-in-simulink-7-1-r2008a

 

위 주소의 코드를 활용하여 아래와 같이 Simulink Scope 를 다 닫는 함수를 만들어서 사용한다면 편리 할 것 같네요.

 

function scopeCloseAll

shh = get(0,'ShowHiddenHandles');

set(0,'ShowHiddenHandles','On');

hscope = findobj(0,'Type','Figure','Tag','SIMULINK_SIMSCOPE_FIGURE');

close(hscope);

set(0,'ShowHiddenHandles',shh);

end


+ Recent posts