본문 바로가기
programming language/MATLAB

MATLAB GUI

by __observer__ 2012. 2. 24.
반응형

MATLAB GUIDE 에 대해 버튼을 클릭하면 그래프를 그리는 예제를 통해 설명하겠습니다.

 

GUIDE 의 이용하기 위해서는 MATLAB command 창에 guide 라는 명령을 치거나

 

MATLAB 에서 아이콘을 클릭하면 됩니다.

 

다음과 같은 화면에서 빈 GUI 창을 만들기 위해서 OK 를 클릭합니다.

 

 

GUIDE 의 기본 창은 아래그림과 같이 component palette 와 몇 가지 아이콘으로 구성됩니다.

 

 

component palette 에 있는 각 구성들을 가져다가 GUI 창에 끌어다 붙이는 형태로 GUI 를 구성할 수 있습니다.

 

component palette 를 가 아이콘 만으로 되어 있는데 FILE >> Preferences 에 들어가서 아래 그림처럼 설정 합니다.

 

 

그럼 아이콘과 component 의 이름이 같이 나오게 됩니다.

 

이제 아래 그림처럼 GUI 를 구성해 보도록 하죠.

 

 

component palette 에서 Push Button 을 클릭하고 gui창에 마우스로 드래그 해서 붙이고~

 

Axes 를 클릭하고 원하는 크기 만큼 마우스로 드래그 해서 붙이면 됩니다.

 

그리고 push button 의 이름을 바꿔주기 위해서 push button 부분을 더블 클릭 하시면

 

아래 그림처럼 inspector 가 나오는데요.

 

inspector 는 component 의 설정 등을 변경 할 때 사용합니다.

 

어쨌든 아래 그림처럼 String 부분을 Plot 으로 바꿔주면 버튼의 이름이 Plot 으로 변경됩니다.

 

 

지금 현재 GUI 창에 있는 각 component 들은 (object browser) 를 클릭하면 쉽게 알 수 있습니다.

 

 

어떤 component 가 있는지 그리고 각 component 의 tag 값은 무엇인지 알 수 있습니다.

 

현재 axes component 는 axes1 이라는 tag 를 가졌고 pushbutton 은 pushbutton1 이라는 tag 를 가졌습니다.

 

본 포스팅의 예는 매우 간단하여 tag 구분이 쉽지만 ~~

 

여러 개의 component 가 있을 때 각 component 는 tag로 구분 하므로 tag 명을 잘 구분 하셔야 합니다.

 

GUI 를 이렇게 구성 했으면 이제 저장을 해야죠.

 

저는 plot_GUI.fig 라는 파일명으로 저장했는데요. 원하는 파일명으로 저장 하시면 됩니다.

 

그럼 같은 폴더에 똑 같은 이름은 m 파일이 자동으로 만들어 집니다.

 

저는 plot_GUI.m 파일이 자동으로 만들어 졌습니다.

 

이제 plot_GUI.m 파일에 코드 몇 줄 작성하면 됩니다.

 

matlab editor 에서 만들어진 plot_GUI.m 파일을 엽니다.

 

그럼 각종 함수 들이 쭉 써져 있는 것을 보실 수가 있습니다.

 

버튼을 눌렀을 때 sin, cos 그래프가 그려지도록 할 것이므로

 

function pushbutton1_Callback(hObject, eventdata, handles) 

 

이라는 코드 부분을 찾습니다. 위 함수 정의 부분은 pushbutton1 을 눌렀을 때 호출되는 함수라는 뜻입니다.

 

위 함수 정의 이하 부분을 아래와 같이 코딩 합니다.

 

function pushbutton1_Callback(hObject, eventdata, handles)

% hObject handle to pushbutton1 (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB

% handles structure with handles and user data (see GUIDATA)

 persistent state;
persistent graph_h;  

if isempty(state)

state=1;

end

 

if state==1

x=linspace(0,2*pi,200); % radian axes

y_sin=sin(x); % sin

y_cos=cos(x); % cos

 

axes(handles.axes1); % graph axes

graph_h=plot(x,y_sin,x,y_cos); % plot handle, graph_h

grid on;

legend('Sin(x)','cos(x)'), xlabel('radian'), ylabel('value')

state=0;

else

set(graph_h,'visible','off'); % graph_h visible off

state=1;

end 

 

이제 다 완성된 겁니다. 저장을 하시면 코딩도 끝입니다.

 

plot_GUI.fig 창에서 ctrl + T 를 누르시거나 초록색 삼각형 부분을 눌러서 실행 시켜도 되고~~~

 

그냥 command 창에서 plot_GUI 라는 명령어를 입력 해서 실행 시켜도 됩니다.

 

그럼 아래 그림처럼 GUI 가 실행 됩니다.

 

 

Plot 버튼을 한번 누르면 아래 그림처럼 sin, cos 그래프가 나오죠~

 

 

그리고 또 한번 누르면 아래 그림처럼 그래프가 사라지게 됩니다.

 

 

그럼 오늘의 포스팅은 여기서 마치겠습니다.


반응형

'programming language > MATLAB' 카테고리의 다른 글

MATLAB 뫼비우스의 띠  (0) 2012.03.23
MATLAB FFT 처리 속도  (0) 2012.03.19
MATLAB varargin, varargout  (6) 2012.03.12
MATLAB GUI 창 크기 조절  (4) 2012.03.03
MATLAB figure ButtonDownFcn  (0) 2012.02.22
Simulink Algebraic Loop  (0) 2012.02.13
MATLAB dos 명령 사용하기  (0) 2011.12.21
MATLAB convolution  (151) 2011.11.20

댓글