1.6 MATLAB语言初步
在学习了前面的基础内容后,下面将介绍MATLAB语言的基础知识,进入MATLAB语言的学习中。
1.6.1 变量
在MATLAB中,变量名可以直接当变量使用。变量名必须以字母开头,由字母、下画线和数字组成,须严格区分大小写并只能识别前31个字符。
例如,在命令窗口中输入:

1.6.2 矩阵及其运算
MATLAB语言的核心是矩阵,在MATLAB语言系统中,数组、矩阵和向量经常混用,几乎所有的数据处理和运算都是以矩阵为基本元素。下面就从矩阵开始介绍MATLAB语言的一些基本知识,使读者对MATLAB语言有一个初步的了解。
MATLAB以复数矩阵为基本的运算单位,向量和标量被看成是特殊的矩阵处理。向量看做一行或者一列的矩阵,而标量看做是1×1矩阵。
(1)向量是一维数组,要创建一个时间向量,可在命令窗口中输入:


注意,向量的第一个元素的下标是1,这与信号处理中的习惯,即从0开始有所区别。t=0:1:10生成0~10步长为1的共11个数,保存在t(1),t(2), …, t(11)中。
(2)矩阵相当于2维数组,如创建一个3×3矩阵,输入:

调用矩阵元素:

矩阵的运算遵循线性代数的法则。
行向量是只有1行的矩阵,列向量是只有1列的矩阵,标量是1行1列的矩阵。“[]”表示空矩阵。
1.矩阵的生成
矩阵的生成可用下面几种方法:
(1)逐个元素输入法 这是最简单,也是最通用的一种矩阵生成方法。例如:
>>x = [2 4 5; 3 6 7]%采用逐个元素输入,整个矩阵必须以方括号“ [] ”为其首尾;行与行之间必须用分号“;”或回车键“Enter”隔开;元素之间必须由逗号“ , ”或空格分隔。

(2)冒号生成法这是通过“步长”设定,生成一维“行”数组的方法。
格式:x = a:inc:b
其中:a是数组的第一个元素; inc是相邻两个元素之间的间隔; b是数组的最后一个元素。
说明:
①若b-a是inc的整数倍,则最后一个元素是b;否则,小于b。
②若inc =1,又可以简写为x = a:b。
③inc可以取整数也可以为负数,取决于a, b的相对大小关系。
(3)定数线性采样点这是在设定的“总点数”下,均匀采样生成一维“行”数组。
格式:x = linspace(a, b, n)
其中:a, b分别为生成数组的第一个和最后一个元素。n是采样总点数。
说明:
①该指令生成一个1* n数组。
②该指令的作用与x = a:(b-a)/n:b相同。
(4)几种特殊矩阵:
①a=[] %空矩阵

②a=zeros(2,3) %生成元素全为零的2×3矩阵

③a=ones(2,3) %生成元素全为1的2×3矩阵

④a=rand(2,5) %生成随机的2×5矩阵

⑤矩阵的提取 这是通过一个矩阵生成另一个矩阵的方法。例如:A为一个矩阵,则B = A(2:3, 1:4)为A的子矩阵。


2.元素的访问
以实例说明。例如:

①x(2) %访问数组x的第二个元素

②x([1 2 4]) %访问数组x的第1, 2, 4个元素组成的子数组

③x(1:3) %访问数组x的前3个元素组成的子数组

④x(2:end) %访问第2个直到最后一个元素,end是最后一个元素下标

⑤x(3:-1:1) %由前3个元素倒序组成的数组

⑥x(find(x>0.5)) %由大于0.5的元素组成的子数组

⑦x(3)=2 %给x的第3个元素重新赋值

⑧x(3)=[] %删除第3个元素

⑨x(5)=3%加入第5个元素

1.6.3 部分特殊变量和常量
部分特殊变量和常量如下:
ans 最近生成的无名结果
eps 浮点数相对误差
pi 3.1415926
j 虚数单位
i 虚数单位
inf 无穷大
NaN(Not a number)非数,如0/0,inf/inf等
1.6.4 运算符
1.扩充算术运算符
扩充算术运算符如表1-2所示。
表1-2 算术运算符

注解:
①经典运算符的用法和普通的数学应用相同。
②“+”表示矩阵中对应元素相加(两个矩阵的维数必须相同)。例如:


③“-”表示矩阵中对应元素相减(两个矩阵的维数必须相同)。例如:

④“ .* ”中多了一个点“.”,表示矩阵中对应元素相乘(两个矩阵的维数必须相同)。例如:

⑤“ .\ ”或“./”中多了一个点“.”,表示矩阵中对应元素左除(右除)(两个矩阵的维数必须相同)。例如:

⑥“ .^”中多了一个点“.”,表示矩阵中每个元素都作乘幂。例如:


说明:在这里特别要注意加点与不加点“.”的区别,以及这些算术运算符连接的两个阵列是否需要长度一致。
⑦矩阵的转置运算通过在矩阵变量后加“’”的方法来表示转置运算。例如:

2.关系运算符
< 小于
<= 小于或等于
> 大于
>= 大于或等于
= = 等于
~= 不等于
运算法则:若关系式成立,结果为1;若关系式不成立,结果为0。例如:

3.逻辑运算符
& 与
| 或
~ 非
Xor 异或
运算法则:若逻辑真,结果为1;若逻辑假,结果为0。例如:


4.其他
= 变量赋值
% 注释符
1.6.5 变量
MATLAB对变量名大小写比较敏感,因而在变量命名时,须特别注意:
(1)变量的第一个字符必须为英文字母,且不能超过31个字符。
(2)变量名可以包括下画线、数字,但是不能为空格符、标点。
1.6.6 创建和保存M文件
创建M文件是MATLAB中非常重要的内容。事实上,正是由于在MATLAB工具箱中存放着大量的M文件,使得MATLAB应用起来显得简单、方便,且功能强大。如果用户根据自己的需要,开发出适用于自己的M文件,不仅能使MATLAB更加贴近用户自己,而且能使MATLAB的功能得到扩展,来满足每位用户不同的需求。下面介绍M文件的创建与保存。
1.创建
点击File菜单下New菜单选项的M-File命令,可打开MATLAB的M文件编辑器窗口,如图1-20所示。

图1-20 M文件编辑器
2.保存
单击M文件编辑器窗口工具栏中的Save图标,打开如图1-21所示的保存对话框,可对M文件进行保存。

图1-21 M文件的保存
3.命令文件和函数文件
当用户要运行的命令较多时,如果直接在命令窗口中逐条输入和运行,有诸多不便。此时可通过编写命令文件来解决这个问题。另外,MATLAB的许多命令,需要用户通过编写函数文件来执行。
对于命令文件,在编写完文件后或开始编写前就可以为文件命名;函数文件不同于命令文件,其命名必须与function后面的函数名称完全相同。另外,函数文件与命令文件还有一个差别:命令文件中的变量是全局变量;而函数文件中的变量是局部变量。这意味着一旦运行完命令文件,所产生的变量都存放在工作内存中;而运行完函数文件后,这些内部变量都将被清除。在运行过程中,对于命令文件,只要在MATLAB工作区内键入文件的名字,或者在相应的M文件中点击运行按钮
就可以运行,得到相应的运算结果;而对于函数文件,只能在所嵌入的程序中键入函数名称,代入相应的变量,在运行整个程序的时候才可以得到函数的运行结果,并且代入到程序中,才能最终得到期望的结果。