lec 13. matlab gui programming
DESCRIPTION
TRANSCRIPT
![Page 2: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/2.jpg)
MATLAB Programming
GUI 만들기
New Graphical User Interface 선택
2
![Page 3: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/3.jpg)
MATLAB Programming
UI Editor
3
![Page 4: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/4.jpg)
MATLAB Programming
GUI Application
데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬
데이터를 읽고, bar 그래프로 그려주는 GUI Application을 제작
GUI Application 개발 스텝
• 1. 사용자 인터페이스를 어떤 식으로 만들지 구상
• 2. 사용자 인터페이스를 키보드나 마우스 등으로 조작했을 때, 해당
이벤트를 처리할 수 있는 코드 작성
4
![Page 5: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/5.jpg)
MATLAB Programming
사용자 인터페이스 디자인
파일읽어오기
버튼누르면파일선택창뜸
바그래프
파일선택후버튼누르면
5
![Page 6: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/6.jpg)
MATLAB Programming
UI 컴포넌트 배치하기
원하는 디자인대로 UI 컴포넌트를 배치
6
![Page 7: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/7.jpg)
MATLAB Programming
UI 실행해보기
7
![Page 8: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/8.jpg)
MATLAB Programming
버튼 속성 바꾸기
버튼더블클릭하면속성창 (Inspector) 열림
8
![Page 9: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/9.jpg)
MATLAB Programming
버튼 속성 바꾸기
버튼이름과폰트가바뀜
9
![Page 10: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/10.jpg)
MATLAB Programming
버튼 눌렀을 때 실행될 코드 작성하기
버튼 선택 후 마우스 오른쪽 버튼을 누르고 View Callbacks
ButtonDownFcn 을 선택
• pushbutton1_Callback 함수가선택됨
• 이곳에버튼이눌렀을때실행될명령어작성
10
![Page 11: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/11.jpg)
MATLAB Programming
버튼 눌렀을 때 실행될 코드 작성하기
버튼이 눌러지면, 파일을 선택할 수 있는 UI 창이 떠야 함
• uigetfile 함수를 사용하면 파일 선택할 수 있는 UI 창을 띄울 수 있음
11
![Page 12: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/12.jpg)
MATLAB Programming
버튼 눌렀을 때 실행될 코드 작성하기
버튼이 눌러지면, 파일을 선택할 수 있는 UI 창이 떠야 함
• uigetfile 함수를 사용하면 파일 선택할 수 있는 UI 창을 띄울 수 있음
12
![Page 13: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/13.jpg)
MATLAB Programming
버튼 눌렀을 때 실행될 코드 작성하기
• uigetfile 창에서 “열기” 를하면 filename과 path가반환됨
• 파일경로와이름을이용하여데이터를읽어옴
13
![Page 14: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/14.jpg)
MATLAB Programming
버튼 눌렀을 때 실행될 코드 작성하기
데이터를 bar 그래프로 그리기
• axes 컴포넌트의 핸들 얻어오기
– handles.axes컴포넌트이름
14
![Page 15: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/15.jpg)
MATLAB Programming
완성
실행 파일 열기 traffic.txt 선택
15
![Page 16: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/16.jpg)
MATLAB Programming
기능 추가하기
라디오 버튼을 추가하여, Bar 그래프를 grouped bar 그래프로 그릴지, stacked
bar 그래프로 그릴지 선택
Button Group 을선택하여그림 Radio Button 두개를놓음
16
![Page 17: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/17.jpg)
MATLAB Programming
Button Group의 Label 변경하기
원하는이름으로적으면됨
• eg) Grouped/Stacked
17
![Page 18: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/18.jpg)
MATLAB Programming
Button Group의 Label 변경하기
원하는이름으로적으면됨
• eg) Grouped/Stacked
Button Group 컴포넌트를 더블
클릭하면 왼쪽과 같은 Inspector
창이 열림
Title 속성에 원하는 이름을 적으면
컴포넌트의 타이틀이 변경됨
18
![Page 19: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/19.jpg)
MATLAB Programming
라디오 버튼 Label 변경하기
Button Group의 Label 변경하는 방법과 동일하게 Radio Button
컴포넌트의 타이틀도 변경
19
![Page 20: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/20.jpg)
MATLAB Programming
라디오 버튼을 선택했을 때 실행할 코드 작성하기
두 라디오 버튼이 toggle 되어야 하므로, 마우스로 Button Group 컴포넌트를 선택한 후
마우스 오른쪽 버튼을 누르고 View Callbacks SelectionChangeFcn 을 선택
• uipanel1_SelectionChangeFcn 함수가선택됨
• 이곳에라디오버튼이토글되었을때
실행될명령어작성
20
![Page 21: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/21.jpg)
MATLAB Programming
라디오 버튼을 선택했을 때 실행할 코드 작성하기
라디오버튼을선택했을때, 바그래프를다시그려야하므로,
그래프컴포넌트에대한핸들을얻어옴
hObject에어떠한라디오버튼을눌렀는지 정보가들어있음
각라디오버튼이선택되었을 때의액션을지정함
21
![Page 22: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/22.jpg)
MATLAB Programming
각 라디오 버튼의 명칭 확인하기
각 라디오 버튼의 명칭에 따라 handles.radiobutton_N 이 될 수 있음
확인 방법
• 라디오 버튼 선택 후 더블 클릭
Inspector 창에서 “Tag” 속성의 값 확인
22
![Page 23: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/23.jpg)
MATLAB Programming
데이터 저장 변수를 global 로 선언하기
“파일 열기“ 버튼을 눌렀을 때 최초로 파일에서 데이터를 읽어 옴.
global data 를 선언하지 않으면, 파일로부터 읽어와 data 변수에 저장된 데이터는 function
pushbutto1_Callback() 내에서만 사용되고 다른 함수에서는 사용할 수 없음
라디오 버튼의 액션을 제어하는 함수는 function uipanel1_SelectionChangeFcn() 함수 (즉,
pushbutton1_Callback() 함수의 밖에 정의 된 함수) 이므로, data 변수에 접근할 수 없음.
global data 라고 선언하면, 다른 함수에서도 data 변수에 접근 가능
23
![Page 24: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/24.jpg)
MATLAB Programming
데이터 저장 변수를 global 로 선언하기
데이터를 가져다 쓸 다른 함수에서도 global data 라고 선언을 해주어야
외부 함수에서 정의한 data 변수에 접근할 수 있음
24
![Page 25: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/25.jpg)
MATLAB Programming
Quiz
기능을 조금 더 확장해서, 바 그래프를 수직으로, 수평으로 보여주는 라디오 버튼을 추가해보자.
25
![Page 26: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/26.jpg)
MATLAB Programming
Quiz Sol.
각 함수별로 바뀌는 부분
26
![Page 27: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/27.jpg)
MATLAB Programming
Quiz Sol.
각 함수별로 바뀌는 부분
27
![Page 28: Lec 13. MATLAB GUI Programming](https://reader034.vdocuments.site/reader034/viewer/2022050700/5486b4f7b47959e70c8b52e8/html5/thumbnails/28.jpg)
MATLAB Programming
Quiz Sol.
각 함수별로 바뀌는 부분
28