You are on page 1of 37

.

MATLAB :
,
.

MATLAB
,
, , ...
, , , ... MATLAB
, .
, . , ,
, MATLAB.
MATLAB .
, MATLAB

. MATLAB
C .
.
MATLAB .
help

ramin.samad@yahoo.com

: MATLAB
MATLAB :


.
( MATLAB . New,Open,Cut,Copy,Past
.
Help
MATLAB .

current directory Directory

( Launch Pad . ,,
Web .
.
(

( MATLAB , MATLAB
>> . help . doc
help .

ramin.samad@yahoo.com

( MATLAB command history


%-- PM // : --% :
.

. .
workspace
MATLAB workspace .
MATLAB
.
Edit .

www.irche.com

Iranian Chemical Engineers Website


Mostafa Saghari

ramin.samad@yahoo.com

: MATLAB
MATLAB :
>> +-
= ans

>> +/
= ans


:
>> a=
=a

>> b=
=b

>> c=
=c

>> a+b-c
= ans

:
MATLAB ( .
( .
( ) . (
( MATLAB) . (for
MATLAB iskeyword .
.
)'>> iskeyword('for
= ans

)'>> iskeyword('keyword
= ans

)'>> iskeyword('ans
= ans

)'>> iskeyword('if
= ans

( MATLAB .
.

ramin.samad@yahoo.com

MATLAB a+b-c ans .


.
>> D=a+b-c
=D

) ( )( .
.
;>> a= , b= ; c=
=a

)/ - +\ )( * )( ^ )((
.
up ) Down (
.
) (Home ,End ,Page Up , .
MATLAB :
ans .
pi )(
eps .
inf
NaN nan ) NaN NaN(
MATLAB
% MATLAB % .
.
) ( . . . .
Ctrl + c .
MATLAB . Format
short .
Format bank ) (
.
MATLAB:
fix
floor
ceil
round
:
Date

ramin.samad@yahoo.com

>> date
= ans
-Jul-
Clear .
>> clear a
>> a
??? Undefined function or variable 'a'.
>> b
=b

>> clear
>> b
??? Undefined function or variable 'b'.
delete MATLAB
. p-file .
>> delete *.p
disp .

. Diary .
MATLAB diary on
prompt MATLAB diary off .
format compact Enter MATLAB
. format loose ,
.
format compact Command window .
Help Doc
.
. .

. MATLAB M-file
.
M-file
.
M-file New M-file .
help-file
.

ramin.samad@yahoo.com

_______________________________________________________________________________
>>help format
>>doc help
>>doc doc
>>help clear
>>help diary
>>help save
>>help load
>>help date
>>help ops
>>help fix

www.irche.com

Iranian Chemical Engineers Website


Mostafa Saghari

ramin.samad@yahoo.com

MATLAB .
][ :

]>> a=[1,2,3,4
=a
1
2
3

MATLAB.
:
)linspace(a,b,c

c ] [a,b .

)logspace(a,b,c

c 10a,10b .

a:b:c
a b b c.
b .
.

0.1411 -0.3508 -0.7568 -0.9775

0.5985

0.9093

0.9975

0.9951

0.9866

0.9640

0.9051

0.9998

0.9993

0.9982

;>> x=0:.5:2*pi
)>> y=sin(x
=y
Columns 1 through 10
0 0.4794 0.8415
Columns 11 through 13
-0.9589 -0.7055 -0.2794
)>> z=tanh(x
=z
Columns 1 through 10
0 0.4621 0.7616
Columns 11 through 13
0.9999 1.0000 1.0000

MATLAB
. MATLAB )(

]>> b=[1;3;5;7
=b
1
3
5
7
')>> b=linspace(1,7,4
=b
1
3
5
7

ramin.samad@yahoo.com

) ' (
.
. ) b(3 ) b
(5 .

. end

0.9051

0.9951

)>> z(end:-3:4
= ans
1.0000 0.9998

;]>> c=[1,5,3,5,1
)>> z(c
= ans
0 0.9640 0.7616

0.9640

c .
.
MATLAB .
)>> b(3.4
??? Subscript indices must either be real positive integers or logicals.
)>> b(-4
??? Subscript indices must either be real positive integers or logicals.
a b ]) [a,b ( ]) [a;b (

.
.

;]>> a=[1 2 3
;]>> b=[4 5 6
;]>> c=[7 8 9
]>> d=[a b],f=[a;b;c
=d
1
2
3
4
5
=f
1
2
3
4
5
6
7
8
9

MATLAB .
.
) ( )(
. Enter
.
]>> A=[1 2 3;6 5 4

ramin.samad@yahoo.com

3
4

2
5

=A
1
6

>> B= [10 11 12
]13 14 15
=B
10 11 12
13 14 15
:
.
MATLAB . MATLAB
.
:
MATLAB .
:

3
4
1
2
18
23
15
19

>> A
=A
1
2
6
5
>> A-2
= ans
-1
0
4
3
>> A*2 + B
= ans
12 15
25 24
>> A + B
= ans
11 13
19 19

A-2.
A . A+B
.
:
>> A
=A
1
2
3
6
5
4
;]>> C=[1 2;3 4
>> C*A
= ans
13 12 11
27 26 25
>> C^2

ramin.samad@yahoo.com

= ans
7 10
15 22
n
. :

36
60

>> A.*B
= ans
10 22
78 70
>> B.^A
= ans
10
4826809

121
1728
537824
50625

>> C.^2
= ans
1
4
9 16
:
)>> ones(2,3
= ans
1
1
1
1
1
1

) ones(n,m nxm .

0
0

) zeros(n,m nxm .

)>> zeros(2,4
= ans
0
0
0
0
0
0

0
0
0
0
1
0
nxm .
) eye(n .

0.8913
0.7621
.

ramin.samad@yahoo.com

)>> eye(3,4
= ans
1
0
0
1
0
0

)>> rand(2,3
= ans
0.9501 0.6068
0.2311 0.4860
)>> randperm(8
= ans
2
4
1
5

5
9
6
4
3
1 n .

)>> randperm(10
= ans
10
7
1
8

)>> magic(3
= ans
8
1
6
3
5
7
4
9
2
.
.

. n x n
.
:
MATLAB
.
>> a= [1 2 3
]1 2 3
=a
1
2
3
1
2
3
)>> size(a
= ans
2
3
) ( .
2
:
)>> [s t]= size (a
=s
2
=t
3

)>> length(a
= ans
3
)>> numel(a
= ans
6

) (number of elements .

ramin.samad@yahoo.com

2.
.
)>> diag(a
= ans
1
2
)>> trace(a
= ans
3
diag . ) diag(a,n n
a n. .
) diag(a a
a .
;]>> c= [1 2 3

0
0
3

)>> diag (c
= ans
1
0
0
2
0
0

)>> minfo(ans
3 rows 3 cols: regular MATLAB matrix
.
:
MATLAB
.
>> c = ans
=c
1
0
0
0
2
0
0
0
3
>> c(3,3) =8
=c
1
0
0
0
2
0
0
0
8
>> c(9)=4
=c
1
0
0
0
2
0
0
0
4

ramin.samad@yahoo.com

2 . 2
.
) (s :
7
8
9

4
5
6

1
2
3

=s

>> c(4)=5
=c
1
5
0
0
2
0
0
0
4

7 .

>> c(:,1)=7
=c
7
5
0
7
2
0
7
0
4

>> c([1 end],[1 end])=8


=c
8
5
8
7
2
0
8
0
8
8
.

][ =)>> c(1,:
=c
7
2
0
8
0
8


.
;]>> a=[1 2 3; 4 5 6;7 8 9
)>> flipud(a
= ans
7
8
9
4
5
6
1
2
3
.
.
)>> b=fliplr(a
=b
3
2
1
6
5
4

ramin.samad@yahoo.com

)>> rot90(b
= ans
1
4
7
2
5
8
3
6
9
90 .
) rot90(a,n n .

1
4
7

7
8
9

)>> triu(ans
= ans
1
4
0
5
0
0

0
0
9

)>> tril(ans
= ans
1
0
0
5
0
0

)>> c=horzcat(ans,b
=c
1
0
0
3
2
0
5
0
6
5
0
0
9
9
8
)>> c=vertcat(ans,b
=c
1
0
0
0
5
0
0
0
9
3
2
1
6
5
4
9
8
7

.
)>> reshape(c,2,9
= ans
1
0
6
0
0
5
0
9
4
0
3
9
5
2
8
0
1
7
.
.
)>> repmat(ans(:,1),2,4
= ans
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0

ramin.samad@yahoo.com

.
) MATLAB repmat(a,m,n a mxn .
MATLAB) cat(n,a,b. a b n
. .
3 . .
)>> d=cat(1,a,b
=d
1
2
3
4
5
6
7
8
9
3
2
1
6
5
4
9
8
7

1
4
7

2
5
8

)>> d=cat(2,a,b
=d
1
2
3
3
4
5
6
6
7
8
9
9
)>> d=cat(3,a,b
=
2
5
8
=
2
5
8

3
6
9
1
4
7

)d(:,:,1
1
4
7
)d(:,:,2
3
6
9

.
;]>> a=[1 2;3 4
;]>> b=[2 3
)>> kron(a,b
= ans
2
3
4
6
6
9
8 12

6
12

)>> kron(b,a
= ans
2
4
3
6
8
9

] >> [ b(1)*a , b(2)*a


6
12

ramin.samad@yahoo.com

3
9

4
8

= ans
2
6

:
MATLAB .
0 20 ) sort(a,n n
.
))>> a=fix(20*rand(3,4
=a
8
8
7
2
18 17 16
4
18
1
0
3
)>> sort(a,1
= ans
8
1
0
2
18
8
7
3
18 17 16
4
)>> [sor,pos]=sort(a,2
= sor
2
7
8
8
4 16 17 18
0
1
3 18
= pos
4
3
1
2
4
3
2
1
3
2
4
1
MATLAB

. .
n 2 .
(1 2 .
(2 .
:
MATLAB ... .
.
;]>> a=[0 1 0;2 0 3;1 3 4
)>> nnz(a
= ans
6
)>> find(a
= ans
2
3
4
6

ramin.samad@yahoo.com

8
9
)>> nonzeros(a
= ans
2
1
1
3
3
4
3 . .
.

)>> all(a
= ans
0
0

)>> all(a,2
= ans
0
0
1
) all(a,n ) n(
.
n .
)>> any(a,2
= ans
1
1
1

.

1 .

)>> isempty(a
= ans
0

;]>> b=[9 3 0 8
)>> ismember(b,a
= ans
0
1
1
0
) b ( a
.
)>> unique(a
= ans
0
1
2
3

ramin.samad@yahoo.com

4
a .
:
MATLAB .
.
))>> a=fix(20*rand(3,4
=a
19
9
9
8
4 17
0 12
12 15 16 15
2
. .
)>> min(a
= ans
4
9
0
8

15
3

)>> [s,t]=max(a
=s
19 17 16
=t
1
2
3

sort
.
)) max(a,b (min _ b a
_ a .b
))>> b=fix(45*rand(3,4
=b
41 18 18 15
33 42 40 36
7 41
2
0

15
36
15

)>> max(a,b
= ans
41 18 18
33 42 40
12 41 16

.
)>> mean(b,2
= ans
23.0000
37.7500
12.5000
)>> median(b,2
= ans

ramin.samad@yahoo.com

18.0000
38.0000
4.5000
)>> median(b,1
= ans
33 41 18

15

median .
2 .

51

15
51
51
.

1440

60

)>> sum(b
= ans
81 101

)>> cumsum(b
= ans
41 18 18
74 60 58
81 101 60
.

30996

)>> prod(b
= ans
9471

)>> cumprod(b
= ans
41
18
18
15
1353
756
720
540
9471
30996
1440
0
.
.
) ( .
.
:
)>> isequal(a,b
= ans
0
.
:
.
;]>> x=[2 3 6 10
;]>> y=[1 2 3 4

ramin.samad@yahoo.com


MATALAB . ) polyfit(x,y,n . x,y n
. .
)>> p=polyfit(x,y,3
=p
0.0193 -0.3795

2.5298 -2.6964

4.0000

3.0000

)>> polyval(p,x
= ans
1.0000 2.0000


. polyval .
)>> r=roots(p
=r
9.1557 + 4.8026i
9.1557 - 4.8026i
1.3040
.
p .
)>> p2=poly(r
= p2
1.0000 -19.6154 130.7692 -139.3846
roots .
.
2 2.
.
;]>> p1=[2 0 3 -1
;]>> p2=[2 4

-4

5.5000

10

)>> conv(p1,p2
= ans
4
8
6

)>> deconv(p1,p2
= ans
1.0000 -2.0000

.
.
;]>> p3=[3 2 0 1
>> p1 + p3
= ans
5
2
3
0

ramin.samad@yahoo.com

:
.

)>> a=randperm(8
=a
4
3
2
6

>> b=2:2:8
=b
2
4
6

)>> union(a,b
= ans
1
2
3

)>> intersect(b,a
= ans
2
4
6
8

)>> setxor(a,b
= ans
1
3
5

a .b ). (
)>> setdiff(a,b
= ans
1
3
5
7
a b.
)>> setdiff(b,a
= ans
Empty matrix: 1-by-0

b a.
:
a .

]>> a=[2 3 -4;0 -4 2;1 -1 5


=a
2
3 -4
0 -4
2
1 -1
5

0.2174
0.0870
0.1739

)>> inv(a
= ans
0.3913 0.2391
-0.0435 -0.3043
-0.0870 -0.1087
)>> det(a

ramin.samad@yahoo.com

ans =

-46

>> a'
ans =
2
3
-4

0
-4
2

1
-1
5
:

MATLAB
.
>> what
M-files in the current directory F:\MATLAB6_5\work
bub_dew
calculate

cumprod2
exm
cumsum2
moadel

mostafa
name

prod2
seri

size2
star

sum2

. M-file
. cd dos
>> who
Your variables are:
a ans b p p2 pos r

sor x

>> whos
Name
Size
a
ans
b
p
p2
pos
r
sor
x
y

3x3
1x5
1x4
1x4
1x4
3x4
3x1
3x4
1x4
1x4

Bytes Class
72 double array
40 double array
32 double array
32 double array
32 double array
96 double array
48 double array (complex)
96 double array
32 double array
32 double array

Grand total is 61 elements using 512 bytes


. why MATLAB
.
>> why
Some hamster insisted on it.

www.irche.com

Iranian Chemical Engineers Website


Mostafa Saghari

ramin.samad@yahoo.com

MATLAB .
.
.
2 .
.
: plot
2 .
.
;>> x = 0:0.2:2*pi
;)>> y = sin(x
)>> plot(x,y
x y ).
(. plot figure
.
. figure .

plot . x y
.
.

ramin.samad@yahoo.com

solid
dotted
dashdot
dashed

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

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

blue
green
red
cyan
magenta
yellow
black

b
g
r
c
m
y
k

:
)'>> plot(x,y,'pg

. ) (
. .

. 3 .
)'>> plot(x,y,':-

ramin.samad@yahoo.com

??? Error using ==> plot


Error in color/linetype argument.
.
90 . y
x x y .
: ...
xlabel ylabel . title
.
. legend
. .
grid on grid off .
text .
clf figure clc. command window .
.
clf
)'plot (x,y,'-.
)' xlabel (' variable
)' ylabel (' y variable
)' title (' MATLAB
)' legend (' sin
grid
)' text (3,.5,' Mim Shimi 82

ramin.samad@yahoo.com

>>
>>
>>
>>
>>
>>
>>
>>

grid
.
text .
gtext .
.
TEXT :
) gtext ( TEXT

MATLAB . )
( .
.
.

Symbol

Symbol Character
Sequence

Symbol Character
Sequence

Character
Sequence

\sim

\upsilon

\alpha

\leq

\phi

\beta

\infty

\chi

\gamma

\clubsuit

\psi

\delta

\diamondsuit

\omega

\epsilon

\heartsuit

\Gamma

\zeta

\spadesuit

\Delta

\eta

\leftrightarrow

\Theta

\theta

\leftarrow

\Lambda

\vartheta

\uparrow

\Xi

\iota

\rightarrow

\Pi

\kappa

\downarrow

\Sigma

\lambda

\circ

\Upsilon

\pm

\Phi

\nu

\geq

\Psi

\xi

\propto

\Omega

\pi

\partial

\forall

\rho

\bullet

\exists

\sigma

\div

\ni

\varsigma

ramin.samad@yahoo.com

\mu

\neq

\cong

\tau

\aleph

\approx

\equiv

\wp

\Re

\Im

\oslash

\oplus

\otimes

\supseteq

\cup

\cap

\subset

\subseteq

\supset

\o

\in

\int

\nabla

\lceil

\rfloor

...

\ldots

\cdot

\lfloor

\prime

\neg

\perp

\0

\times

\wedge

\mid

\surd

\rceil

\copyright

\varpi

\vee

\rangle

\langle

.
) } text ( {LINE1 , LINE2
.
} { .
'_' .
\fontsize .
. axis
.
.
) ]axis ( [XMIN XMAX YMIN YMAX
.
)]axis ([2 10 3 8
)'xlabel ('LABEL_x
)'ylabel ('LABEL_y
)}'title ({'First line','Second line
)'text (6,6.5,'\fontsize{34} \heartsuit
)}'gtext ({'\fontsize{30} (a \pm b)^2','=a^2 \pm 2ab + b^2
)'}text (4,4,'\fontsize{14}sin(\alpha)^{2\pi

ramin.samad@yahoo.com

>>
>>
>>
>>
>>
>>
>>

command ensert
figure .
.


.
.
semilogx x
semilogy y . loglog
. plot.

ramin.samad@yahoo.com

:
.
figure
.
.
:
hold . figure
.
.
;)x=linspace(0,10
;y=sin(x);z=tan(x);s=cos(x);t=x.^2
hold on
)plot(x,y
)plot(x,s
)'title('Hold on
hold off

>>
>>
>>
>>
>>
>>
>>

:
plot .
.
MATLAB. .
... .
)'>> plot (x,y,x,s,x,cos(2*x),'sk
)')>> legend('sin(x)','cos(x)','cos(2x

ramin.samad@yahoo.com

:
x y
. plotyy .
. :
)'plotyy(x1,y1,x2,y2,' fun1' ,' fun2

.
semilogx, semilogy, plot, loglog, stem
plot ... .
. .
:
.
) figure(n n
. figure .
.
)figure(1
;)x=linspace(0,10
;)y=sin(x);s=cos(x
)plot(x,y
)figure(2
)plot(x,s

ramin.samad@yahoo.com

>>
>>
>>
>>
>>
>>

:
.
subplot . :
)subplot(mnp

or

)subplot (m,n,p

figure mxn p .
.
)subplot (2,1,1
)plotyy (x,y,x,s
)subplot (2,1,2
))plot (x,atan(x

>>
>>
>>
>>

:
.
axes . :
)]axes (' position' , [left, bottom, width, height

.
.
) (00 ) (11
.

ramin.samad@yahoo.com

M-file
.
.
x=1:.1:10;
y=-10*sinh(x);
z=-cos(x/2);
[AX,H1,H2]=plotyy (x,y,x,z,'loglog','semilogx')
set(get(AX(1),'Ylabel'),'String','\theta_1 Log plot');
set(get(AX(2),'Ylabel'),'String','\theta_2 Linear plot');
set(get(AX(2),'Xlabel'),'String','logarithmic plot');
set(H1,'LineWidth',4);
set(H2,'LineStyle','--','LineWidth',2);
axes('Position',[.34 .2 .35 .35]);
x1=linspace(1,10,24);
y1=sin(x1);
f=plot(x1,y1,'p');
axis([1 10 -1.5 1.5]);
set(f,'MarkerSize',12,'LineWidth',2);
ylabel('\lambda^0');
title('graphic example');
set(gca,'XTick',[1 2 4 5 8 10],'YTick',[-1.5 -.75 0 .5 1.5]);
grid on;

ramin.samad@yahoo.com

.
.
:function file
MATLAB
.
) (function file M-file :
)function [outputs]= name(inputs
M-file .
. )][(
name . .
.
. .
>>help name .
M-file prod .

)function p=prod (x
)% function p=PROD (x
% shabih sazi farman PROD
% a:radif b:sotoon
;)[a,b]=size(x
;)p(,:)=x(,:
for i=:a,
% satr aval p dar satr haye x zarb shode
% va dar satr aval p zakhir mishavad
;)p(,:)=p(,:).*x(i,:
end
% if x is rowvector
;while a==
;p=
for i=:b,
;)p=p*x(i
end
;a=
end

c .
For

. :
for variable = a
statement
statement

end

ramin.samad@yahoo.com

a . a variable .
a .
.
.
for i=:
for j=:
;s(i,j)=i*j
end
end
While
.
. :
while expression
statements
end
expression ) .
(
:
:



)(


<
=<
>
=>
==
=~
:


&
|
~
)xor(x,y

AND
OR
NOT
OR

) ) x (y
True (

:
If - Else End
.
.

ramin.samad@yahoo.com

if expression
statements
elseif expression
statements

elseif expression n
statements n
else
statements
end
If Elseif Else End
. Else Elseif .
If )
(Elseif
... n Else .

Switch-Case
.
.
x
x .
(otherwise)
. :
switch switch_expr
case case_expr,
statement, ..., statement
}case {case_expr, case_expr, case_expr,...
statement, ..., statement
...
otherwise,
statement, ..., statement
end
:
( End Case
.
( Case )}{(
.
( Otherwise .
:Try-Catch
:

ramin.samad@yahoo.com

try

commands
catch
commands
end
Try
Catch .
.
:
Break
MATLAB For .
) For (While MATLAB
.
Error
.
) error ( STATEMENT
Return
) Command window
( .
.

.

www.irche.com

Iranian Chemical Engineers Website


Mostafa Saghari

ramin.samad@yahoo.com