https://kr.mathworks.com/help/matlab/creating_guis/interactive-table-gui-in-app-designer.html
핵심코드
1) methods (Access = Private)
2-1)
function updatePlot(app) t = app.UITable.DisplayData; x2 = t.Age; y2 = t.BloodPressure(:,2); plot(app.UIAxes2, x2, y2, "-o"); end |
2) Callback Function
2-1) 앱이 시작될 때 데이터 로딩 및 초기화를 수행하는 기능
function startupFcn(app) t = readtable('patients.xls'); % 읽을 엑셀파일 vars = {'Age','Systolic','Diastolic','SelfAssessedHealthStatus','Smoker'}; % 가져올 행 이름 t = t(1:20, vars); % vars를 행이름으로 해서 20개 뽑음 t = sortrows(t, "Age"); % Age로 오름차순 t.BloodPressure = [t.Systolic t.Diastolic]; % Systolic과 Diastolic으로 BloodPressure라는 새 행을 만듦 t.Systolic = [ ]; t.Diastolic = [ ]; % Systolic과 Diastolic은 없앰 cats = categorical(t.SelfAssessedHealthStatus, {'Poor', 'Fair', 'Good', 'Excellent'}); % SelfAssessedHealthStatus 행을 카테고리형태로 바꿈 t.SelfAssessedHealthStatus = cats; t = t(:, [1 4 3 2]); % 행의 순서를 바꿈 app.UITable.Data = t; % UITable의 Data를 t로 함 x1 = app.UITable.Data.Age; y1 = app.UITable.Data.BloodPressure(:,2); plot(app.UIAxes, x1, y1, "o-"); updatePlot(app); end |
2-2) Table의 Display 내 Value값이 바뀔 때 마다 기능하는 콜백함수
function UITableDisplayDataChanged(app, event) updatePlot(app); end |