Top Banner
MATLAB Programming MATLAB GUI Programming 김탁은 [email protected] 1
28

Lec 13. MATLAB GUI Programming

Dec 05, 2014

Download

Education

Tak-Eun Kim

 
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lec 13. MATLAB GUI Programming

MATLAB Programming

MATLAB GUI Programming

김 탁 은[email protected]

1

Page 2: Lec 13. MATLAB GUI Programming

MATLAB Programming

GUI 만들기

New Graphical User Interface 선택

2

Page 3: Lec 13. MATLAB GUI Programming

MATLAB Programming

UI Editor

3

Page 4: Lec 13. MATLAB GUI Programming

MATLAB Programming

GUI Application

데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬

데이터를 읽고, bar 그래프로 그려주는 GUI Application을 제작

GUI Application 개발 스텝

• 1. 사용자 인터페이스를 어떤 식으로 만들지 구상

• 2. 사용자 인터페이스를 키보드나 마우스 등으로 조작했을 때, 해당

이벤트를 처리할 수 있는 코드 작성

4

Page 5: Lec 13. MATLAB GUI Programming

MATLAB Programming

사용자 인터페이스 디자인

파일읽어오기

버튼누르면파일선택창뜸

바그래프

파일선택후버튼누르면

5

Page 6: Lec 13. MATLAB GUI Programming

MATLAB Programming

UI 컴포넌트 배치하기

원하는 디자인대로 UI 컴포넌트를 배치

6

Page 7: Lec 13. MATLAB GUI Programming

MATLAB Programming

UI 실행해보기

7

Page 8: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 속성 바꾸기

버튼더블클릭하면속성창 (Inspector) 열림

8

Page 9: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 속성 바꾸기

버튼이름과폰트가바뀜

9

Page 10: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 눌렀을 때 실행될 코드 작성하기

버튼 선택 후 마우스 오른쪽 버튼을 누르고 View Callbacks

ButtonDownFcn 을 선택

• pushbutton1_Callback 함수가선택됨

• 이곳에버튼이눌렀을때실행될명령어작성

10

Page 11: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 눌렀을 때 실행될 코드 작성하기

버튼이 눌러지면, 파일을 선택할 수 있는 UI 창이 떠야 함

• uigetfile 함수를 사용하면 파일 선택할 수 있는 UI 창을 띄울 수 있음

11

Page 12: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 눌렀을 때 실행될 코드 작성하기

버튼이 눌러지면, 파일을 선택할 수 있는 UI 창이 떠야 함

• uigetfile 함수를 사용하면 파일 선택할 수 있는 UI 창을 띄울 수 있음

12

Page 13: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 눌렀을 때 실행될 코드 작성하기

• uigetfile 창에서 “열기” 를하면 filename과 path가반환됨

• 파일경로와이름을이용하여데이터를읽어옴

13

Page 14: Lec 13. MATLAB GUI Programming

MATLAB Programming

버튼 눌렀을 때 실행될 코드 작성하기

데이터를 bar 그래프로 그리기

• axes 컴포넌트의 핸들 얻어오기

– handles.axes컴포넌트이름

14

Page 15: Lec 13. MATLAB GUI Programming

MATLAB Programming

완성

실행 파일 열기 traffic.txt 선택

15

Page 16: Lec 13. MATLAB GUI Programming

MATLAB Programming

기능 추가하기

라디오 버튼을 추가하여, Bar 그래프를 grouped bar 그래프로 그릴지, stacked

bar 그래프로 그릴지 선택

Button Group 을선택하여그림 Radio Button 두개를놓음

16

Page 17: Lec 13. MATLAB GUI Programming

MATLAB Programming

Button Group의 Label 변경하기

원하는이름으로적으면됨

• eg) Grouped/Stacked

17

Page 18: Lec 13. MATLAB GUI Programming

MATLAB Programming

Button Group의 Label 변경하기

원하는이름으로적으면됨

• eg) Grouped/Stacked

Button Group 컴포넌트를 더블

클릭하면 왼쪽과 같은 Inspector

창이 열림

Title 속성에 원하는 이름을 적으면

컴포넌트의 타이틀이 변경됨

18

Page 19: Lec 13. MATLAB GUI Programming

MATLAB Programming

라디오 버튼 Label 변경하기

Button Group의 Label 변경하는 방법과 동일하게 Radio Button

컴포넌트의 타이틀도 변경

19

Page 20: Lec 13. MATLAB GUI Programming

MATLAB Programming

라디오 버튼을 선택했을 때 실행할 코드 작성하기

두 라디오 버튼이 toggle 되어야 하므로, 마우스로 Button Group 컴포넌트를 선택한 후

마우스 오른쪽 버튼을 누르고 View Callbacks SelectionChangeFcn 을 선택

• uipanel1_SelectionChangeFcn 함수가선택됨

• 이곳에라디오버튼이토글되었을때

실행될명령어작성

20

Page 21: Lec 13. MATLAB GUI Programming

MATLAB Programming

라디오 버튼을 선택했을 때 실행할 코드 작성하기

라디오버튼을선택했을때, 바그래프를다시그려야하므로,

그래프컴포넌트에대한핸들을얻어옴

hObject에어떠한라디오버튼을눌렀는지 정보가들어있음

각라디오버튼이선택되었을 때의액션을지정함

21

Page 22: Lec 13. MATLAB GUI Programming

MATLAB Programming

각 라디오 버튼의 명칭 확인하기

각 라디오 버튼의 명칭에 따라 handles.radiobutton_N 이 될 수 있음

확인 방법

• 라디오 버튼 선택 후 더블 클릭

Inspector 창에서 “Tag” 속성의 값 확인

22

Page 23: Lec 13. MATLAB GUI Programming

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

MATLAB Programming

데이터 저장 변수를 global 로 선언하기

데이터를 가져다 쓸 다른 함수에서도 global data 라고 선언을 해주어야

외부 함수에서 정의한 data 변수에 접근할 수 있음

24

Page 25: Lec 13. MATLAB GUI Programming

MATLAB Programming

Quiz

기능을 조금 더 확장해서, 바 그래프를 수직으로, 수평으로 보여주는 라디오 버튼을 추가해보자.

25

Page 26: Lec 13. MATLAB GUI Programming

MATLAB Programming

Quiz Sol.

각 함수별로 바뀌는 부분

26

Page 27: Lec 13. MATLAB GUI Programming

MATLAB Programming

Quiz Sol.

각 함수별로 바뀌는 부분

27

Page 28: Lec 13. MATLAB GUI Programming

MATLAB Programming

Quiz Sol.

각 함수별로 바뀌는 부분

28