본문 바로가기

MATLAB/ㄴ 앱 디자이너

대화형 방식으로 정렬하고 편집할 수 있는 테이블이 있는 앱 생성하기


        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