MATLAB R2020a完全自学一本通
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.2 变量

在程序中经常会定义一些变量来保存和处理数据。从本质上看,变量代表了一段可操作的内存,也可以认为变量是内存的符号化表示。

当程序中需要使用内存时,可以定义某种类型的变量。此时编辑器根据变量的数据类型分配一定大小的内存空间,程序就可以通过变量名来访问对应的内存。本节将介绍MATLAB中变量的相关知识。

4.2.1 变量的命名

在MATLAB中,变量不需要预先声明就可以进行赋值。变量的命名遵循以下规则:

● 变量名和函数名对字母的大小写敏感,因此xX是两个不同的变量;sin是MATLAB定义的正弦函数,而SIN不是。

● 变量名必须以字母开头,其后可以是任意字母或下画线,但是不能有空格、中文或标点。例如,_xy、a.b均为不合法的变量名,而classNum_x是一个合法的变量名。

● 不能使用MATLAB的关键字作为变量名。避免使用函数名作为变量名。如果变量采用函数名,则该函数失效,如设置变量名为“if”“end”等。

● 变量名最多可包含63个字符,从第64个字符开始之后的字符将被忽略。为了程序可读及维护方便,变量名一般代表一定的含义。

通过调用isvarname函数,可以验证用户指定的变量名是否为能被MATLAB接收的合法变量名。该函数返回值为1或0,表示合法或不合法。例如:

img

4.2.2 变量的类型

MATLAB将变量划分为三类:局部变量、全局变量和永久变量。

(1)局部变量。MATLAB中的每一个函数都有自己的局部变量,这些变量存储在该函数独立的工作区中,与其他函数的变量及主工作区中的变量分开存储。当该函数调用结束后,这些变量随之被删除,不会保存在内存中。

(2)全局变量。全局变量在定义该变量的全部工作区中有效。当在一个工作区内改变该变量的值时,该变量在其余工作区内的值也将改变。

通常,全局变量的变量名用大写字母来表示,并在函数体的开头位置进行定义,其格式如下:

img

使用全局变量的目的是减少数据传递的次数。然而,使用全局变量有一定的风险,容易造成错误,这种错误源自全局变量的工作原理。

(3)永久变量。永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取。当声明它的函数退出时,MATLAB不会从内存中清除它。例如,声明a为永久变量:

img

4.2.3 MATLAB默认的特殊变量

MATLAB预定义了许多特殊变量,这些变量具有系统默认的含义,如表4-3所示。

表4-3 MATLAB中的特殊变量

img

4-1特殊变量的应用示例。

根据圆的面积计算公式Sr2,计算半径为6的圆的面积。在命令行窗口中输入:

img

得到结果:

img

4.2.4 关键字

关键字是MATLAB程序设计中常用到的流程控制变量,共有20个,如果用户将这些关键字作为变量名,则MATLAB会出现错误提示。在命令行窗口中输入命令iskeyword,即可查询这20个关键字:

img