28
MATLAB GUI 프로그래밍 1

MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

MATLAB GUI 프로그래밍

1

Page 2: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

GUI 만들기

New Graphical User Interface 선택

2

Page 3: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

UI Editor

3

Page 4: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

GUI Application

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

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

GUI Application 개발 스텝

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

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

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

4

Page 5: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

사용자 인터페이스 디자인

5

파일 읽어오기

버튼 누르면

파일 선택 창 뜸

바 그래프

파일 선택 후버튼 누르면

Page 6: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

UI 컴포넌트 배치하기

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

6

Page 7: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

UI 실행해보기

7

Page 8: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

버튼 속성 바꾸기

8

버튼 더블클릭하면

속성 창 (Inspector) 열림

Page 9: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

버튼 속성 바꾸기

9

버튼 이름과 폰트가 바뀜

Page 10: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

ButtonDownFcn 을 선택

10

• pushbutton1_Callback 함수가 선택됨

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

Page 11: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

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

11

Page 12: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

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

12

Page 13: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

13

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

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

Page 14: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

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

– handles.axes컴포넌트이름

14

Page 15: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

완성

실행 파일 열기 traffic.txt 선택

15

Page 16: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

기능 추가하기

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

bar 그래프로 그릴지 선택

16

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

Page 17: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

Button Group의 Label 변경하기

17

원하는 이름으로 적으면 됨

• eg) Grouped/Stacked

Page 18: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

Button Group의 Label 변경하기

18

원하는 이름으로 적으면 됨

• eg) Grouped/Stacked

Button Group 컴포넌트를 더블

클릭하면 왼쪽과 같은 Inspector

창이 열림

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

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

Page 19: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

라디오 버튼 Label 변경하기

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

컴포넌트의 타이틀도 변경

19

Page 20: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

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

20

• uipanel1_SelectionChangeFcn 함수가 선택됨

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

실행될 명령어 작성

Page 21: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

21

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

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

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

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

Page 22: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

확인 방법

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

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

22

Page 23: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

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

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

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

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

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

23

Page 24: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

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

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

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

24

Page 25: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

Quiz

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

25

Page 26: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

Quiz Sol.

각 함수별로 바뀌는 부분

26

Page 27: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

Quiz Sol.

각 함수별로 바뀌는 부분

27

Page 28: MATLAB GUI 프로그래밍 - IT AcademyGUI Application 데이터가 저장되어 있는 txt 파일을 선택하면, 해당 파일로부터 행렬 데이터를 읽고, bar 그래프로

Quiz Sol.

각 함수별로 바뀌는 부분

28