본문 바로가기

MATLAB/ㄴ 앱 디자이너

Table에 새로운 Data를 삽입하고 수정이 가능하도록 함

1. Add버튼을 클릭 → 파일 불러오기 대화상자 팝업


            % 대화상자 열기
            getlayer = uigetfile('C:\Users\yj.jo\OneDrive - CSI-Vision\바탕 화면\Project\'); 
            if getlayer == 0 % 만약 파일이 x면 return
                return;
            end

 

2. 파일을 불러온 후 .mat파일을 테이블의 형태로 변경

 



            loaded_data = load(getlayer); % 데이터 불러오기
            dataTable = struct2table(loaded_data); % 불러온 mat파일을 테이블형태로 바꿈
            layername = string(dataTable.Properties.VariableNames(1)); % layer 이름 정의

  

 

3. 기존 테이블에서 Layer Name만 추출 → uitable() 함수를 통해 새로운 테이블을 생성한 후 Layer Name을 가져옴

→ 나머지 Column명은 수정이 가능하도록 변경 (char, char, char, logical)

 



            data = {layername{1}, '1', '0', '0', true(1)};
            data{5} = logical(data{5});
            columnNames = {"Layer Name", "Thickness", "pitch", "height", "fit"};
 

 

4. 새로운 데이터를 추가할수 있도록 함

 


           % 이전 데이터를 유지하고 새로운 데이터 추가
            if isempty(app.UITable2.Data) % Table이 비어있는 경우
                app.UITable2 = uitable(app.ModelPanel, "Data", data, "ColumnName",columnNames,'ColumnEditable',true, ...
                    'Position',[0,1,430,326]);

            else
                currentData = app.UITable2.Data;
                newData = data;
                tb = [currentData; newData];
                app.UITable2.Data = tb;
            end

 

 

tip: table 내 data의 수정은 table() 함수가 아니라, uitable() 함수를 이용해야 함

( 'ColumnEditable', true 라는 option을 uitable()만 사용할 수 있음)