1-1、基本运算与函数 #k<l5x`
i.^UkN{
在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: ?lqqu#;8
>=rniHs=?7
>> (5*2+1.3-0.8)*10/25 u`B/ 9-K)y
Tq*<J~-
ans =4.2000 D]d! lMK/
^{J^oZ'%~
MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答 案(Answer)并显示其数值於萤幕上。 E\Wd*,/v)
Z
OAg7
小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 !1S!)#
%iPIgma
我们也可将上述运算式的结果设定给另一个变数x: ~eTp( XG
aiX4;'$x!
x = (5*2+1.3-0.8)*10^2/25 ~Gc@#Msj
T+0z.E!~I
x = 42 O>f*D+A-
k^JgCC+
此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 `6Q+N=k~Z
.@r{Tq,%q8
小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 =|O]X|y-lZ
~K)FuL[*
若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: 6_8y Q
wBI:}N@.
y = sin(10)*exp(-0.3*4^2); IY~I=}
MC-Z6l2
若要显示变数y的值,直接键入y即可: Ac*)z#H
WSF$xC/~
>>y W#d'SL#5
Z@m5hx&
y =-0.0045 U1yspHiZ
~yngH0S$[b
在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 ;eFV}DWW
wko9tdC=U
下表即为MATLAB常用的基本数学函数及三角函数: ^755LW
ELG{xN=o
小整理:MATLAB常用的基本数学函数 t
~]'
{[F
)g&nI<Mh
abs(x):纯量的绝对值或向量的长度 iN Lt4F[i
V#4ox km
angle(z):复 数z的相角(Phase angle) 4*n1Xu7^x
/gaC
sqrt(x):开平方 KKg\n^
H93ug1,
real(z):复数z的实部 ,rY}IwMw
9$(N q
imag(z):复数z的虚 部 4;jAdWj3
q|lP?-j
conj(z):复数z的共轭复数 ~T._v;IT
sV%=z}n=
round(x):四舍五入至最近整数 A|mE3q=
djdSD
fix(x):无论正负,舍去小数至最近整数 tOj5b7'ui
m*e8j[w#
floor(x):地板函数,即舍去正小数至最近整数 k9y/.Mu
][\ uH|
ceil(x):天花板函数,即加入正小数至最近整数 |c$*Fa"A
'oBv(H
rat(x):将实数x化为分数表示 g]b%<DJ
|<8g 2A{X
rats(x):将实数x化为多项分数展开 m KKa0"
ye
{y[$#3
sign(x):符号函数 (Signum function)。 Qc
1mR\.5
s,laJf
当x<0时,sign(x)=-1; !cO<N~0*5x
]VN1Y)
当x=0时,sign(x)=0; $reQdN=~
TYxi&;w
当x>0时,sign(x)=1。 s BuXwa
ccW{88II7w
> 小整理:MATLAB常用的三角函数 5tVg++I
x;7p75Wm
sin(x):正弦函数 #KL W&A
} f!wQxb
cos(x):馀弦函数 ,+5!1>\
nzB!0U
tan(x):正切函数 y+.(E-g
;UQ&yj%x
asin(x):反正弦函数 'Te'wh=Y
2Aq+:ud)P
acos(x):反馀弦函数 DY87NS*HF
-,"eN}P^
atan(x):反正切函数 Je#3
)d5mZE!3
atan2(x,y):四象限的反正切函数 NCx)zJ\S
%8"Aq
sinh(x):超越正弦函数 ,v*\2oG3^
#/K71Y
cosh(x):超越馀弦函数 (jh0cy}|]
6A} 45
tanh(x):超越正切函数 zL+M-2hV
_lOyT$DN
asinh(x):反超越正弦函数 {f>e~o
VB+y9$Y'
acosh(x):反超越馀弦函数 WODgG@w
LC/%AbM
atanh(x):反超越正切函数 l'\m'Ioh
CakB`q(8
变数也可用来存放向量或矩阵,并进行各种运算,如下例的列向量(Row vector)运算: 0^MRPE|f5
A6F/w
x = [1 3 5 2]; lHgmljn5u
_4t
y = 2*x+1 Oyjhc<6
z0tm3ovp
y = 3 7 11 5 Y#Pg*C8>8
sTYA
小提示:变数命名的规则 0~nub
UZW)%
1.第一个字母必须是英文字母 2.字母间不可留空格 3.最多只能有19个字母,MATLAB会忽略多馀字母 X
gA(
D
S?(/~Vb%
我们可以随意更改、增加或删除向量的元素: H[iR8<rhQ
)!D,;,aQ
y(3) = 2 % 更改第三个元素 ^pvnUODW[
NFb<fD[C
y =3 7 2 5 Qnv)\M1
.u9,w
y(6) = 10 % 加入第六个元素 ncij)7c)u
)L7h:%h#
y = 3 7 2 5 0 10 ~@VyJT%
{c AGOx wd
y(4) = [] % 删除第四个元素, <SNu`,/I
$[*<e~?
y = 3 7 2 0 10 s `
+cQ
,tHV
H7[
在上例中,MATLAB会忽略所有在百分比符号(%)之後的文字,因此百分比之後的文字均可视为程式的注解(Comments)。MATLAB亦可取出向量的一个元素或一部份来做运算: s\
YHT.O?
iXuSFman
x(2)*3+y(4) % 取出x的第二个元素和y的第四个元素来做运算 vHx[:vuq:
b(:U]>J
ans = 9 XRWy#Pj
l>jNBxB|/A
y(2:4)-1 % 取出y的第二至第四个元素来做运算 QpMi+q
Y
eq$.np
ans = 6 1 -1 ;Z{jol
,9~2#[|lq
在上例中,2:4代表一个由2、3、4组成的向量 :pgpE0
2lRE+_qz
~~3 BV,
7F wot&