
1.1.1 变量
1.变量的定义
变量是任何程序设计语言的基本元素之一,MATLAB语言当然也不例外。变量是指在运行时其值可以被改变的量。变量是可以多次赋值的,因此变量常用于保存程序中的临时数据。
与其他的程序设计语言相同,在MATLAB语言中也存在变量作用域的问题。
(1)局部变量
在未加特殊说明的情况下,MATLAB语言将所识别的一切变量视为局部变量,即仅在其使用的M文件内有效。
(2)全局变量
若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说,全局变量均用大写的英文字符表示。
变量在使用前,必须在代码中进行声明,即创建(定义)该变量。
例1-1: 定义变量。
解: MATLAB程序如下。


2.变量赋值
变量在赋值过程中,如果赋值变量已存在,则MATLAB将使用新值代替旧值,并以新值类型代替旧值类型。在MATLAB中变量的命名应遵循如下规则。
◆ 变量名必须以字母开头,之后可以是任意的字母、数字或下画线。
◆ 变量名区分字母的大小写。
◆ 变量名不超过31个字符,第31个字符以后的字符将被忽略。
MATLAB赋值语句有两种格式。
◆ 变量=表达式。
◆ 表达式。
其中,表达式是用运算符将有关运算量连接起来的句子。一般情况下,运算结果在命令行窗口中显示出来,若不想让MATLAB每次都显示运算结果,只需在运算式最后加上分号(;)即可。
变量的初始化包括下面两种。
◆ 用赋值语句初始化,如“x=1”。
◆ 用input函数从键盘输入,如“x=input('请输入数据')”。
例1-2: 数值赋值。
解: MATLAB程序如下。


例1-3: 给x赋值。
解: MATLAB程序如下。



3.预定义的变量
MATLAB语言本身也具有一些预定义的变量,也可以称之为常量,表1-1给出了MATLAB语言中经常使用的一些特殊变量。
表1-1 MATLAB中的特殊变量

与常规的程序设计语言不同的是,MATLAB并不要求事先对所使用的特殊变量进行声明,也不需要指定特殊变量类型,MATLAB语言会自动依据所赋予这些变量的值或对变量所进行的操作来识别变量的类型。
例1-4: 显示圆周率pi的值。
解: MATLAB程序如下。


这里“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动将当前结果赋给“ans”变量。
在定义变量时应避免与常量名相同,以免改变这些常量的值。如果已经改变了某个常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值。当然,重新启动MATLAB也可以恢复这些常量值。
例1-5: 显示实数与复数的值。
解: MATLAB程序如下。



例1-6: 重定义变量pi值。
解: MATLAB程序如下。


4.变量函数
MATLAB中还有许多常用的变量函数。
在MATLAB中,who函数用于列出工作区中的变量,它的调用格式见表1-2。
表1-2 who调用格式

在MATLAB中,whos函数用于列出工作区中的变量及其大小和类型,其调用格式与who函数相同,这里不再赘述。
在MATLAB中,exist函数用于检查变量、脚本、函数、文件夹或类的存在情况,它的调用格式见表1-3。
例1-7: 检查变量的定义情况。
解: MATLAB程序如下。


表1-3 exist调用格式
