https://kr.mathworks.com/help/matlab/creating_guis/memory-monitor-gui-in-app-designer.html
핵심코드
1) Properties (Access = Private)
프로그램 코드 작성 시 사용할 변수 선언
properties (Access = private) RandTimer PlotLine end |
2) methods (Access = Private)
2-1)
그래프에 새로운 무작위 데이터를 추가하고, 기존의 데이터는 한 칸씩 오른쪽으로 이동시키는 동적인 효과를 갖는 함수
function RandTimerFcn(app, ~, ~) randnum = rand; ydata = app.PlotLine.YData; ydata = circshift(ydata, 1); ydata(1) = randnum; app.PlotLine.YData = ydata; end |
3) Callback Function
3-1) 앱이 시작될 때 데이터 로딩 및 초기화를 수행하는 기능
function startupFcn(app) app.UIAxes.XLim = [0 60]; app.UIAxes.XDir = "reverse"; app.UIAxes.YLim = [0 1]; app.PlotLine = plot(app.UIAxes, 0:60, zeros(1,61)); app.RandTimer = timer( ... "ExecutionMode","fixedRate", ... "Period",1, ... "BusyMode","queue", ... "TimerFcn",@app.RandTimerFcn); end |
3-2) Start 버튼이 눌릴 때 호출되는 함수
function StartButtonPushed(app, event) if strcmp(app.RandTimer.Running, "off") start(app.RandTimer); end end |
3-3) Stop 버튼이 눌릴 때 호출되는 함수
function StopButtonPushed(app, event) stop(app.RandTimer); delete(app.RandTimer); delete(app); end |