오늘 강의 내용 (2014/01/17) - it academy · 2014-01-17 · matlab programming gui application...

29
MATLAB Programming 오늘 강의 내용 (2014/01/17) MATLAB GUI 만들기 기초 1

Upload: others

Post on 17-Feb-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

오늘 강의 내용 (2014/01/17)

MATLAB GUI 만들기 기초

1

Page 2: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

MATLAB GUI 프로그래밍

2

Page 3: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

GUI 만들기

New Graphical User Interface 선택

3

Page 4: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

UI Editor

4

Page 5: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

GUI Application

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

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

GUI Application 개발 스텝

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

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

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

5

Page 6: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

사용자 인터페이스 디자인

6

파일 읽어오기

버튼 누르면

파일 선택 창 뜸

바 그래프

파일 선택 후버튼 누르면

Page 7: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

UI 컴포넌트 배치하기

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

7

Page 8: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

UI 실행해보기

8

Page 9: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

버튼 속성 바꾸기

9

버튼 더블클릭하면

속성 창 (Inspector) 열림

Page 10: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

버튼 속성 바꾸기

10

버튼 이름과 폰트가 바뀜

Page 11: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

ButtonDownFcn 을 선택

11

• pushbutton1_Callback 함수가 선택됨

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

Page 12: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

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

12

Page 13: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

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

13

Page 14: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

14

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

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

Page 15: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

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

– handles.axes컴포넌트이름

15

Page 16: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

완성

실행 파일 열기 traffic.txt 선택

16

Page 17: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

기능 추가하기

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

bar 그래프로 그릴지 선택

17

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

Page 18: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

Button Group의 Label 변경하기

18

원하는 이름으로 적으면 됨

• eg) Grouped/Stacked

Page 19: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

Button Group의 Label 변경하기

19

원하는 이름으로 적으면 됨

• eg) Grouped/Stacked

Button Group 컴포넌트를 더블

클릭하면 왼쪽과 같은 Inspector

창이 열림

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

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

Page 20: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

라디오 버튼 Label 변경하기

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

컴포넌트의 타이틀도 변경

20

Page 21: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

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

21

• uipanel1_SelectionChangeFcn 함수가 선택됨

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

실행될 명령어 작성

Page 22: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

22

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

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

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

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

Page 23: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

확인 방법

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

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

23

Page 24: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

“파일 열기“ 버튼을 눌렀을 때 최초로 파일에서 데이터를 읽어 옴.

global data 를 선언하지 않으면, 파일로부터 읽어와 data 변수에 저장된 데이터는 function

pushbutto1_Callback() 내에서만 사용되고 다른 함수에서는 사용할 수 없음

라디오 버튼의 액션을 제어하는 함수는 function uipanel1_SelectionChangeFcn() 함수 (즉,

pushbutton1_Callback() 함수의 밖에 정의 된 함수) 이므로, data 변수에 접근할 수 없음.

global data 라고 선언하면, 다른 함수에서도 data 변수에 접근 가능

24

Page 25: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

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

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

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

25

Page 26: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

Quiz

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

26

Page 27: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

Quiz Sol.

각 함수별로 바뀌는 부분

27

Page 28: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

Quiz Sol.

각 함수별로 바뀌는 부분

28

Page 29: 오늘 강의 내용 (2014/01/17) - IT Academy · 2014-01-17 · MATLAB Programming GUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터

MATLAB Programming

Quiz Sol.

각 함수별로 바뀌는 부분

29