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