MATLAB变量的使用(新手必看)
MATLAB 程序中经常会定义一些变量来保存和处理数据。从本质上看,变量代表了一段可操作的内存,也可以认为变量是内存的符号化表示。
当程序中需要使用内存时,可以定义某种类型的变量。此时,编辑器根据变量的数据类型分配一定大小的内存,程序就可以通过变量名来访问对应的内存。
变量的命名遵循以下规则:
通过调用 isvarname() 函数,可以验证指定的变量名是否为能被 MATLAB 接收的合法变量名。该函数的返回值为 1 或 0,表示合法或不合法。例如:
当该函数调用结束后,局部变量随之被删除,不会保存在内存中。
通常,全局变量的变量名用大写字母来表示,并在函数体的开头位置利用 global 定义,其格式如下:
当声明它的函数退出时,MATLAB 不会从内存中清除它。例如,声明 a 为永久变量:
【实例】特殊变量的应用示例。根据圆的面积计算公式 S=πr^2,计算半径为 6 的圆的面积。在命令行窗口中输入:
在命令行窗口中输入命令
当程序中需要使用内存时,可以定义某种类型的变量。此时,编辑器根据变量的数据类型分配一定大小的内存,程序就可以通过变量名来访问对应的内存。
MATLAB变量的命名
在MATLAB中,变量不需要预先声明就可以进行赋值。变量的命名遵循以下规则:
- 变量名和函数名对字母的大小写敏感,因此x和X是两个不同的变量;sin 是 MATLAB 定义的正弦函数,而 SIN 不是。
- 变量名必须以字母开头,其后可以是任意字母或下画线,但不能有空格、中文或标点。例如,_xy、a.b 均为不合法的变量名,而 classNum_x 是一个合法的变量名。
- 不能使用 MATLAB 的关键字作为变量名。避免使用函数名作为变量名。如果变量名采用函数名,则该函数失效,如设置变量名为“if”“end”等。
- 变量名最多可包含 63 个字符,从第 64 个字符开始,之后的字符将被忽略。为了程序可读及维护方便,变量名一般代表一定的含义。
通过调用 isvarname() 函数,可以验证指定的变量名是否为能被 MATLAB 接收的合法变量名。该函数的返回值为 1 或 0,表示合法或不合法。例如:
isvarname('_xy') ans = 0 % 返回值为 0 表明该变量名不合法 isvarname('classNum_x') ans = 1 % 返回值为 1 表明该变量名合法
MATLAB变量的类型
MATLAB 将变量划分为 3 类,分别是局部变量、全局变量和永久变量。1) 局部变量
MATLAB 中的每个函数都有自己的局部变量,这些变量存储在该函数独立的工作区中,与其他函数的变量及主工作区中的变量分开存储。当该函数调用结束后,局部变量随之被删除,不会保存在内存中。
2) 全局变量
全局变量在定义该变量的全部工作区中有效。当在一个工作区内改变该变量的值时,该变量在其余工作区内的值也将改变。通常,全局变量的变量名用大写字母来表示,并在函数体的开头位置利用 global 定义,其格式如下:
global X_Val使用全局变量的目的是减少数据传递的次数。然而,使用全局变量有一定的风险,容易造成错误,这种错误源自全局变量的工作原理。
3) 永久变量
永久变量用 persistent 声明,只能在 M 文件函数中定义和使用,只允许声明它的函数进行存取。当声明它的函数退出时,MATLAB 不会从内存中清除它。例如,声明 a 为永久变量:
persistent a
MATLAB特殊变量
MATLAB 预定义了许多特殊变量,如下表所示,这些变量具有系统默认的含义。特殊变量 | 描述 | 特殊变量 | 描述 |
---|---|---|---|
ans | 系统默认的用作保存运算结果的变量名 | realmin | 可用的最小正实数 |
pi | 圆周率 | realmax | 可用的最大正实数 |
eps | 机器零阈值,MATLAB 中的最小值 | flintmax | 可用的最大正整数(以双精度格式存储) |
inf 或 Inf | 表示无穷大 | intmax | 特定整数类型的最大值 |
NaN 或 nan | 表示不定数 | intmin | 特定整数类型的最小值 |
i 或 j | 虚数 | varargin | 可变的函数输入参数个数 |
nargin | 函数的输入参数个数 | varargout | 可变的函数输出参数个数 |
nargout | 函数的输出参数个数 | beep | 使计算机发出“嘟嘟”的声音 |
【实例】特殊变量的应用示例。根据圆的面积计算公式 S=πr^2,计算半径为 6 的圆的面积。在命令行窗口中输入:
>> pi*(6^2) ans = 113.0973
MATLAB关键字
关键字是 MATLAB 程序设计中常用的流程控制变量,共有 20 个,如果用户将这些关键字作为变量名,则 MATLAB 会出现错误提示。在命令行窗口中输入命令
iskeyword
,即可查询这 20 个关键字:
>> iskeyword ans = 20×1 cell 数组 {'break' } {'case' } {'catch' } {'classdef' } {'continue' } {'else' } {'elseif' } {'end' } {'for' } {'function' } {'global' } {'if' } {'otherwise'} {'parfor' } {'persistent'} {'return' } {'spmd' } {'switch' } {'try' } {'while' }