一、基本变量
程序中,为了方便操作内存中的值,需要给内存中的值设定一个标签,这个标签称之为变量。在MATLAB语言中,变量不需要事先声明,MATLAB在遇到新的变量名时,会自动建立变量并分配内存。给变量赋值时,如果变量不存在,会创建它;如果变量存在,会更新它的值;赋值时,右边的表达式必须有一个值(即使值为空也行)。
变量命名规则如下:
始于字母,由字母、数字或下划线组成;
区分大小写;
可任意长,但使用前N个字符。N与硬件有关,由函数namelengthmax返回,一般N=63;
不能使用关键字作为变量名(关键字在后面给出);
避免使用函数名作为变量名。
如果变量采用函数名,该函数失效。
如:
>>clear=3
>>clear
clear=
3
clear函数失效,不能清除基本工作空间中的变量。
与变量有关的函数见下表:
函数名
函数说明
clear
清除工作空间里的数据项,释放内存
isvarname
检查输入的字符串是否为有效的变量名
genvarname
采用字符串构建有效的变量名
ans
当没指定输出变量时,临时存储最近的答案
namelengthmax
返回最大的标识符长度
MATLAB存储变量在一块内存区域中,该区域称为基本工作空间。脚本文件或命令行创建的变量都存在基本工作空间中。函数不使用基本工作空间,第个函数都有自己的函数空间。
变量有三种基本类型:
1.局部变量
每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用。当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在。
脚本(没有输入输出参数,由一系列MATLAB命令组成的M文件)没有单独的工作空间,只能共享调用者的工作空间。当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中。
2.全局变量
在函数或基本工作空间内,用global声明的变量为全局变量。例如声明a为全局变量:
>>global a
声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值。
如果函数的子函数也要使用全局变量,也必须用global声明。
3.永久变量
永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取。当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:
>>persistent a
二、特殊变量
一些函数返回重要的特殊值,这些值可以在M文件中使用,见下表:
函数
函数说明
eps
浮点数相对精度;MATLAB计算时的容许误差
intmax
本计算机能表示的8位、16位、32位、64位的最大整数
intmin
本计算机能表示的8位、16位、32位、64位的最小整数
realmax
本计算机能表示的最大浮点数
realmin
本计算机能表示的最小浮点数
pi
圆周率,3.1415926535897……
i,j
虚数单位
inf
无穷大。当n>0时,n/0的结果是inf,当n<0时,n/0的结果是-inf
nan
非数,无效数值。比如0/0或inf/inf,结果为NaN
computer
计算机类型
version
MATLAB版本信息
三、关键字
MATLAB为程序语言保留的一些字称为关键字。变量名不能为关键字,否则会出错。查看MATLAB所有的关键字,用iskeyword:
>>iskeyword
ans=
break
case
catch
continue
else
elseif
end
for
function
global
if
otherwise
persistent
return
switch
try
while