讲义
>>x=[-2:2]*pi;y=sin(x)./x Warning: Divide by zero y =
1.0e-016 *
-0.3898 0.3898 NaN 0.3898 -0.3898
此处的显示表示y的值是1.0e-16*[-0.3898,0.3898,NaN,0.3898,-0.3898]。由于x(3)是零,所以sin(x(3))/x(3)发出告警,并给出结果为NaN。将x加上eps,前面的例子便成为
>>x=[-2:2]*pi+eps;y=sin(x)./x y =
0.0000 0.0000 1.0000 0.0000 0.0000 2.4 函数
MATLAB中所有的函数或命令都可借助help菜单或在命令行中键入 >>help 或
>>help 主题名
21 讲义
得到帮助。结合本课的需要,我们在这里介绍一些常用函数。 2.4.1 三角函数
三角函数包括正弦sin、余弦cos、正切tan、反正切atan等。例如: >>X=[0:pi/6:pi];Y=sin(X) Y =
0 0.5000 0.8660 1.0000 0.8660 0.5000 0.0000
?5??????2本例中X。cos(X)是对X的每一?0,,,,,,????63236?个元素求余弦。 2.4.2 指数类函数
指数类函数包括e的指数exp、自然对数log、常用对数log10、平方根sqrt等。在MATLAB中可对负数求对数或求平方根。例如
>> log([-1:+2])
Warning: Log of zero ans =
0 + 3.1416i -Inf 0 0.6931
22 讲义
这里ln。MATLAB在运行至求(?1)?j?,ln0???log(0)时给出了警告但并不中断运行。 2.4.3 复数类函数
复数类函数包括求模abs、求角度angle、求共轭conj、求实部real、求虚部imag等。 2.4.4 取整函数
取整函数包括零方向取整fix、负无穷方向取整floor、正无穷方向取整ceil、四舍五入round、取符号sign等,例如
23 讲义
>>x=[-1:0.5:1]*pi;...
[x;fix(x);floor(x);ceil(x);round(x);sign(x)]
ans =
-3.1416 -1.5708 0 1.5708 3.1416
-3.0000 -1.0000 0 1.0000 3.0000
-4.0000 -2.0000 0 1.0000 3.0000
-3.0000 -1.0000 0 2.0000 4.0000
-3.0000 -2.0000 0 2.0000 3.0000
-1.0000 -1.0000 0 1.0000 1.0000
在MATLAB中,键入省略号(三个或三个以上的小数点)表示下一行是本行的继续。 2.4.5 矩阵产生函数
全零矩阵zeros及全1矩阵ones zeros(n,m)产生一个尺寸为n?m,元素全为零的矩阵。ones(n,m)产生一个尺寸为n?m,元素全为1的矩阵。若n或m不是整数,则按
24 讲义
取整后的结果算。若n或m中(取整后)有一个为0或负值则返回一个空矩阵。 zeros(N)产生一个N维全零方阵。ones(N)产生一个N维全1方阵。
zeros(size(A))产生一个尺寸与A相同的全零矩阵。ones(size(A))产生一个尺寸与A相同的全1矩阵。这里函数size(a)返回一个行矢量[n, m],其中n是a的行数,m是a的列数。
均匀随机数rand及正态随机数randn rand(n,m)产生一个尺寸为n?m的矩阵,其元素按均匀分布随机取值于区间[0,1]。randn(n,m)产生一个尺寸为n?m的矩阵,其元素服从标准正态分布(均值为零,方差为1)。 randn(size(a))产生一个尺寸与a相同的正态分布随机矩阵。rand(size(a))产生一个尺寸与a相同的均匀分布随机矩阵。例如: >>a=sign(randn(1,8000)); >>b=(a+1)/2;
>>c=b+0.1*randn(size(b));
25