Вы находитесь на странице: 1из 57

Building a Graphical User Interface with MATLAB

I-1

Basic Matlab
Matrix definition
a=[1,2 ; 3,4] =>
a= 1 2
34
Vector is a matrix with one column or one row.
a=[1;2;3;4;5 ;; ] one column
b=[1,2,3,4,5,6 ,,..] one row

Building a Graphical User Interface with MATLAB

Basic Matlab
Example
a=[1,2,3,4,5];
b=[a;a;a]

Example
a=[1;2;3;4;5];
b=[a,a,a]

b=

b=

12345
12345
12345

Example (transpose)
a=[1;2;3;4;5];
b=a
b= 1 2 3 4 5

1111
2222
3333
4444
5555

I-2

Building a Graphical User Interface with MATLAB

Basic Matlab
Strings
a=[a,b,c]
a= abc

Strings
a=[a,b,c]
a= abc

Strings
a=[a,b,c]
b=[a,c,c]

b=[a;a;a]

b=[a,a,a]

c=(a==b);

b= abc

b= abcabcabc

c= 1 0 1

abc
abc

I-3

Building a Graphical User Interface with MATLAB

I-4

Basic Matlab
1 2
A

3 4
5 6
B

7 8
6 8
A B

10 12
19 22
A* B

43
50

5 12
A. * B

21
32

1 4
A. ^ 2

9 16
sin(1) sin(2)
sin( A)

sin(3) sin(4)

Building a Graphical User Interface with MATLAB

I-5

Basic Matlab
A=zeros(a1, a2, a3, an);
A is an n dimensional matrix of zeros.
A=ones(a1, a2, a3, an);
A is an n dimensional matrix of ones.
size(A) return the size of A at each diminution.
size(A,Dim) return the size of A at the diminution Dim.

Building a Graphical User Interface with MATLAB

Basic Matlab
A(m,n) returns the value of the matrix in row-m
and column-n.
b=A(1:end,1)

: b will be equal to column 1 of A

b=A(5:10,5:10) : b will a-6x6 matrix containing all


values of A from rows 5-10 and columns 5-10.

I-6

Building a Graphical User Interface with MATLAB

Basic Matlab
Functions in Matlab
function [output variables]=function_name (input variables)

Input and output variables, can be of any type.

I-7

Building a Graphical User Interface with MATLAB

I-8

Basic Matlab
Functions in Matlab
function [out_1,out_2,out_3] = Function_Dec (in_1,in_2,in_3)
out_1=in_1+in_2+in_3;
out_2=[ 'hello' ; 'world' ];
out_3=[1,2,3,4,5];
return;

Building a Graphical User Interface with MATLAB

I-9

Basic Matlab
Functions in Matlab
input:
[a,b,c]=Function_dec(5,3,2)

input:
[a,b,c]=Function_dec([1,2,3],[6,5,4],[3,4,5])

output:
a = 10
b = hello
world

output:
a = 10 11
b = hello
world

c=

c=1

12

Building a Graphical User Interface with MATLAB

Basic Matlab

Bit-wise operations

Variables must be integers


BITAND (a,b)
Bit-wise AND.
BITOR (a,b)
Bit-wise OR.
BITXOR (a,b)
Bit-wise XOR.
BITGET (a,bit-num)
Get bit.
BITSET (a,bit-num,1/0) Set bit.
BITSHIFT
(a,+/- shift_size) Bit-wise shift.

I - 10

Building a Graphical User Interface with MATLAB

Basic Matlab
conditions
If ( Boolean expression)
.
end;
Boolean expression
== : Is Equal
~=: Not Equal
> : Is grater then
< : Is less Then
>=: Is grater then or equal to
<=: Is less then or equal to

I - 11

Building a Graphical User Interface with MATLAB

Basic Matlab
conditions
switch switch_expr
case case_expr,
statement, ..., statement
case {case_expr1, case_expr2, case_expr3,...}
statement, ..., statement
...
otherwise,
statement, ..., statement

end

I - 12

Building a Graphical User Interface with MATLAB

I - 13

Basic Matlab
Loops
for j=start:step:end
.
end;
example:
for j=-1:0.2:3
.
end;

while Boolean expression,


.
end;
example:
while a>b,
.
end;

break - Terminate execution of WHILE or FOR loop.


break terminates the execution of FOR and WHILE loops.
In nested loops, BREAK exits from the innermost loop only.

Building a Graphical User Interface with MATLAB

Basic Matlab
Drawing

plot(X,Y) plots vector Y versus vector X


y
m
c
r
g
b
w
k

yellow
magenta
cyan
red
green
blue
white
black

.
o
x
+
*
s
d
v
^
<
>
p
h

point
- solid
circle
: dotted
x-mark
-. dashdot
plus
-- dashed
star
square
diamond
triangle (down)
triangle (up)
triangle (left)
triangle (right)
pentagram
hexagram

I - 14

Building a Graphical User Interface with MATLAB

Basic Matlab
Drawing
Drawing a circle
t=0:0.1:2*pi;

Drawing a doted circle.


t=0:0.1:2*pi;

x=10*cos(t);
y=10*sin(t);
plot (x,y);

x=10*cos(t);
y=10*sin(t);
plot (x,y,.);

I - 15

Building a Graphical User Interface with MATLAB

I - 16

Basic Matlab
Drawing
ezplot(x^2+y^2=1);

ezplot(x^2/5+y^2/20=1);

Building a Graphical User Interface with MATLAB

Basic Matlab
Drawing
a=0:0.2:2*pi;
b=ones(1,length(a));
c=sin(a'*b);
figure;
subplot(1,2,1);
surf(c);

I - 17

Building a Graphical User Interface with MATLAB

Basic Matlab
Drawing
figure;
t=0:0.1:2*pi+0.1;
b=ones(1,length(t));
z=b'*(1:1:length(t));
x=(10*sin(z)+15).*sin(t'*b);
y=(10*sin(z)+15).*cos(t'*b);
surf(x,y,z);

I - 18

Building a Graphical User Interface with MATLAB

Basic Matlab
Some useful commands
figure
-open new figure.
drawnow -draw to screen immediately.
hold on -draw the next draw to the same figure and axes.

-Transpose
%
- remark
help command- return the help information on the command.
lookfor Word - return a list of all commands that have
the desired word in their help.

I - 19

Building a Graphical User Interface with MATLAB

Basic Matlab
Adding a path to a library
1

I - 20

Building a Graphical User Interface with MATLAB

I - 21

Adding a path to a library


8
5

Building a Graphical User Interface with MATLAB

Basic Matlab
Adding a path to a library
9

10

I - 22

Building GUIs with MATLAB

GUIs

Building a Graphical User Interface with MATLAB

I - 24

What is a Callback?

A callback is a sequence of commands which are


implemented by activating a graphics object:
e.g. CreateFcn, CallBack, ButtonDownFcn, DeleteFcn.

Building a Graphical User Interface with MATLAB

The 10 styles of Matlab Uicontrol objects

Push Button.
Toggle Button.
Check Box.
Radio Button.
Editable Text.
List Box.
Pop-up Menu.
Slider.
Frame.
Static Text

I - 26

Building a Graphical User Interface with MATLAB

I - 27

Push/Toggle Buttons
The push button is widely prevalent uicontrol
style that is used primarily to indicate that a
desired action should immediately take place.
The toggle button look just like push button,
except there is no intermediate state.Rather, the
button will remain in its selected or not selected
state after the user clicks on it.

>>mcpush

Building a Graphical User Interface with MATLAB

Check Box
Useful for representing two states of an option
that you may want to provide (usually as on and
off).
In its off state the check box will consist of an
empty or unfilled square. In the on state, the
check boxs square will contain a V sign.

>>mccheckbox,mccheckbox1

I - 28

Building a Graphical User Interface with MATLAB

I - 29

Radio Button
Similar to the check box in that there are two
states associated with each other.
Usually two or more radio buttons are linked
together as a group.They are linked in the sense
that only one of the buttons will be in its selected
state.

>>mcradiox

Building a Graphical User Interface with MATLAB

I - 30

Editable Text
Used in situations that require the user to enter
strings or characters or numbers. The strings , in
turn, are used by the application for which the
interface has been built.
Clicking anywhere within this object will change
the mouse from a pointer to a text insertion
indicator.

>>mcedit, mceditf

Building a Graphical User Interface with MATLAB

I - 31

List Boxes
New style provided by MATLAB 5.x
Very similar to pop-up menus.
The main difference
>>mccheckboxwith a list box is that you
can make the set of options visible to the user at
all times.

>>mclistbox

Building a Graphical User Interface with MATLAB

I - 32

Pop-up Menus
Used in situations where multiple choices need to
be available to the user.
When the user clicks and holds the mouse button
anywhere within the object, a list of choices
appear.

>>mcpopup

Building a Graphical User Interface with MATLAB

I - 33

Sliders
Useful in representing a fixed range of values
from which to choose.
The slider has no way of explicitly indicating the
numeric value that the slider represents.
Therefor, it is recommended that an editable text
or static text style uicontrol accompany the
slider.

>>mcslider, mcslider2

Building a Graphical User Interface with MATLAB

I - 34

Frames
Provide a solid background that helps blend a set
of uicontrols into one complete and cohesive
interface.
Used as an effective method of organizing the
GUI in a logical and intuitive fashion.

Building a Graphical User Interface with MATLAB

Static Text
Available for creating labels, status messages or
other information pertinent to the user.
Static text does not perform any action if the user
clicks on any part of the object. In addition , the
user can not edit the information that is displayed.

I - 35

Building a Graphical User Interface with MATLAB

I - 36

Properties that Track User Actions


ButtonDownFcn- When clicking the mouse button while the pointer is located over or near the object.
WindowButtonDownFcn- When clicking the mouse button down within the figure
boundaries.

WindowButtonUpFcn- When clicking the mouse button up within the figure boundaries.
WindowButtonMotionFcn- When the mouse pointer moves within the figure boundaries.
KeyboardFcn- When the figure is active.
CreatFcn- When creating an object.
DeleteFcn- When deleting an object.
ResizeFcn- When resizing the figure.

Building a Graphical User Interface with MATLAB

I - 37

Some useful instructions.


AXES(axes_handle) - make the axes, current.

Object_H=GCBO
- to get the object that make
the callback.

RBUTTON(Radio_H) - use to select and deselect


radio buttons with the
same Tag Name

Building a Graphical User Interface with MATLAB

I - 38

Setting figure.
h0 = figure('Color',[0.8 0.8 0.8], ...
'Units','Normal', ...
'Position',[0.3 0.3 0.3 0.3], ...
'Tag','Fig1');
%Setting figure name
set(h0,'Name','Check and radio');

Building a Graphical User Interface with MATLAB

I - 39

Setting Push Button.


h1 =uicontrol ('Parent',h0, 'Units','Normal','Position',[0.1
0.3 0.3 0.4] ,'Tag','Pushbutton1');
%Setting the callBack Function
set(h1,'Callback','Button_1_callBack_Function');
%Setting the string on the button
set(h1,'String','Push.B_1');
%Setting Tool Tip String
set(h1,'TooltipString','Push Me To Call The CallBack Function!');
%Setting The Text Color on the button (the foreground color)

set(h1,'ForegroundColor',[0.0,.0,0.0]);
%setting the background color
set(h1,'BackgroundColor',[0.0,1.0,0.0]);

Building a Graphical User Interface with MATLAB

Edit - Box call back function.


EditBox_H=GCBO;
EditBoxString=get (EditBox_H,'String')

I - 40

Building a Graphical User Interface with MATLAB

I - 41

Building a Graphical User Interface with MATLAB

I - 42

Buatlah Terlebih dahulu data di exc

Building a Graphical User Interface with MATLAB

Menunjukkan
data x di kolom
ke-2

I - 43

Building a Graphical User Interface with MATLAB

I - 44

Building a Graphical User Interface with MATLAB

I - 45

Building a Graphical User Interface with MATLAB

Untuk M-Editor

I - 46

Building a Graphical User Interface with MATLAB

I - 47

Building a Graphical User Interface with MATLAB

I - 48

Harus
dirubah

Building a Graphical User Interface with MATLAB

I - 49

Building a Graphical User Interface with MATLAB

I - 50

Building a Graphical User Interface with MATLAB

I - 51

Building a Graphical User Interface with MATLAB

I - 52

Building a Graphical User Interface with MATLAB

I - 53

Building a Graphical User Interface with MATLAB

Ketik
>> deploytool

I - 54

Building a Graphical User Interface with MATLAB

I - 55

Building a Graphical User Interface with MATLAB

I - 56

Building a Graphical User Interface with MATLAB

I - 57

% --- Executes on button press in pushbutton4.


function pushbutton4_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton4 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');
total = str2num(a)/str2num(b);
c = num2str(total);
set(handles.answer_staticText,'String',c);
guidata(hObject, handles);

Building a Graphical User Interface with MATLAB

I - 58

% --- Executes on button press in pushbutton3.


function pushbutton3_Callback(hObject, eventdata, handles)
% hObject handle to pushbutton3 (see GCBO)
% eventdata reserved - to be defined in a future version of
MATLAB
% handles structure with handles and user data (see GUIDATA)
a = get(handles.input1_editText,'String');
b = get(handles.input2_editText,'String');
total = str2num(a) * str2num(b);
c = num2str(total);
set(handles.answer_staticText,'String',c);
guidata(hObject, handles);

Вам также может понравиться