1.5 MATLAB的编程基础
MATLAB是一门计算语言,它的运算指令和语法基于一系列基本的矩阵运算及它们的扩展运算,还支持复数这一数值元素,这也是MATLAB区别于其他高级语言的最大特点之一,因此给许多领域的计算带来了极大的方便。
1.5.1 变量
变量是保存数据信息的一种最基本的数据类型。变量的命名应遵循以下规则。
● 变量名区分大小写,因此,A与a表示的是不同的变量,初学者尤其要注意这一点。
● 变量名以英文字母开始,第一个字母后可以使用字母、数字、下画线,但不能使用空格和标点符号。
● 变量名长度不得超过31位,超过的部分将被忽略。
● 某些常量也可以作为变量使用。例如,i在MATLAB中表示虚数单位,但它也可以作为变量使用。
常量是指那些在MATLAB中已预先定义其数值的变量。MATLAB默认的常量如表1-4所示。
表1-4 MATLAB默认的常量
注意:A和a表示的是不同的变量,在编程时要注意。
1.5.2 赋值语句
MATLAB采用的是命令行形式的表达式语言,每个命令行就是一条语句,其格式与书写数学表达式的格式十分相近,非常容易掌握。读者在命令窗口输入语句并按Enter键后,该语句就会由MATLAB系统解释运行,并给出运行结果。MATLAB的赋值语句有下面两种结构。
1.直接赋值语句
直接赋值语句的基本格式为:
赋值变量=赋值表达式
其中,等号右边的赋值表达式由变量名、常数、函数和运算符构成,直接赋值语句把赋值表达式的值直接赋给了赋值变量,并将返回值显示在MATLAB的命令窗口中。
【例1-6】对A进行赋值,实现A=2*3+110。
在MATLAB命令窗口中输入直接赋值语句并按Enter键:
运行程序,输出如下:
注意:
(1)如果直接赋值语句后面没有分号“;”,那么MATLAB命令窗口中将显示表达式的运算结果;如果不想显示运算结果,则应该在直接赋值语句末尾加上分号。
(2)如果省略直接赋值语句左边的赋值变量和等号,则表达式运算结果将默认赋值给系统保留变量ans。
(3)如果等号右边的赋值表达式不是数值,而是字符串,则字符串两边应加单引号。
2.函数调用语句
函数调用语句的基本结构为:
[返回变量列表]=函数名(输入变量列表)
其中,等号右边的函数名对应一个存放在合适路径中的MATLAB文本文件。函数可以分为两大类:一类是MATLAB内核中已经存在的内置函数;另一类是读者根据需要自定义的函数。
返回变量列表和输入变量列表均可以由若干变量名组成。
注意:如果返回变量个数大于1,则它们之间应该用逗号或空格进行分隔;如果输入变量个数大于1,则它们之间只能用逗号进行分隔。
【例1-7】通过调用cos函数求的值。
在MATLAB命令窗口中输入以下语句并按Enter键:
运行程序,输出如下:
注意:
(1)函数名的命名规则与变量名的命名规则一致,读者在命名自定义函数时,必须避免与MATLAB已有的内置函数重名。
(2)对于内置函数,读者可以直接调用;对于自定义函数,该函数对应的M文件应当保存在MATLAB可以搜索的目录中。
1.5.3 矩阵及其元素表示
矩阵是MATLAB中数据存储的最佳形式,尽管MATLAB还可以采用其他的存储方式,但采用矩阵存储方式有利于各类数据的运算和操作。
1.矩阵的表示
用MATLAB语言表示一个矩阵非常容易。在MATLAB命令窗口中输入下面的语句并按Enter键:
运行程序,输出如下:
可见矩阵A被成功赋值,并在MATLAB的工作空间中建立了一个名为A的矩阵变量,读者可以在后续的命令和函数中随意调用该矩阵。在输入矩阵的过程中,必须遵循以下规则。
(1)必须使用方括号“[]”将矩阵的所有元素括起来。
(2)矩阵中不同行之间必须用分号或换行符隔开。
(3)矩阵中同一行的各元素之间必须用逗号或空格隔开。
为了方便用户使用,提高编程效率,除了最基本的直接输入方法,MATLAB还给用户提供了一些可以直接调用的内置基本矩阵函数,有时可以成为创建矩阵的捷径。
表1-5为MATLAB提供的主要内置基本矩阵函数。
表1-5 MATLAB提供的主要内置基本矩阵函数
注意:向量是矩阵的一种特例,前面介绍的有关矩阵的表示方法完全适用于向量,只是在表示矩阵行/列数的n和m中,有一个为1。
【例1-8】实现矩阵的创建。
MATLAB还提供了一个便利且高效的表达式,用来给等步长的行向量赋值,即冒号表达式。冒号表达式的基本调用格式为:
其中,s、e为标量,分别代表向量的起始值和终止值;h代表向量元素之间的步长值。例如:
2.矩阵元素的表示和赋值
矩阵元素的行号和列号称为该元素的下标,是通过“()”中的数字(行、列的标量)来标识的。矩阵元素可以通过其下标被引用,如A(i,j)表示矩阵A的第i行第j列的元素。
【例1-9】矩阵元素的表示。
注意:冒号“:”在此能发挥很大的作用。A(2,:)表示矩阵A的第2行的全部元素,A(:,2)表示矩阵A的第2列的全部元素,A(1,1:2)表示矩阵A的第1~2列的全部元素。