首页 > 编程笔记

MATLAB变量及常见操作

变量是任何程序设计语言的基本元素之一,MATLAB 语言当然也不例外。利用 MATLAB 解决问题的最基本操作就是定义一些变量,然后对变量进行运算操作。

MATLAB变量

在 MATLAB 中,变量的命名应遵循如下规则:
与其他的程序设计语言相同,MATLAB 中的变量也存在作用域。在未加特殊说明的情况下,MATLAB 将所识别的一切变量视为局部变量,仅在其使用的 M 文件内有效。

若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字 global。一般来说,全局变量均用大写的英文字符表示。

为变量赋值

将某一有效数值赋给变量,那么此变量称为数值变量。

在 MATLAB 下进行简单数值运算,只需在命令行窗口提示符“>>”之后直接输入,并按 Enter 键即可。

例如,要计算 145 与 25 的乘积,可以直接输入:
>> 145*25
ans =
    3625
用户也可以输入:
>> x=145*25
x =
    3625
此时,MATLAB 把计算值赋给指定的变量 x。

预定义变量

MATLAB 语言本身也具有一些预定义的变量,这些特殊的变量称为常量。

下表给出了 MATLAB 语言中经常使用的一些特殊变量。

表 1 MATLAB中的预定义变量
预定义变量名称 说明
ans MATLAB 中的默认变量
pi 圆周率
eps 浮点运算的相对精度
inf 无穷大,如 1/0
NaN 不定值,如 0/0、∞/∞、0*∞
i(j) 复数中的虚数单位
realmin 最小正浮点数
realmax 最大正浮点数

【实例】显示圆周率 π(pi)的值。
在 MATLAB 命令行窗口提示符“>>”后输入“pi”,然后按 Enter 键,将出现以下内容:
>> pi       % 查看常量pi的值
ans =
      3.1416
这里,“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动将当前结果赋给特殊变量“ans”。

在定义变量时应避免与常量名相同,以免改变这些常量的值。如果已经改变了某个常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值,或者重新启动 MATLAB。

【实例】给圆周率π(pi)赋值1,然后恢复。

MATLAB 程序如下:
>> pi=1      % 修改常量pi的值
pi =
     1
>> clear pi  % 恢复常量pi的初始值
>> pi        % 查看常量pi的值
ans =
      3.1416

常用数学函数

在 MATLAB 中,一般代数表达式的输入就如同在纸上书写一样,如四则运算就直接用“+”“-”“*”“/”即可,而乘方、开方运算分别由^符号和 sqrt 函数来实现。

例如:
>> x= 95^3      % 将表达式的值赋值给x
x =
    857375
>> y= sqrt(x)                  % 求x的平方根
y =
    925.9455
当表达式比较复杂或重复出现的次数太多时,更好的办法是先定义变量,再由变量表达式计算得到结果。

【实例】分别计算 1/(sin(x)+exp(-x)) 在 x=20、40、60、80 处的函数值。
MATLAB 程序如下:
>> x=20:20:80;              % 创建值介于20到80、间隔值为20的4个线性分隔值
>> y=1./(sin(x)+exp(-x))    % 点除运算“./”是对每一个x做除法运算
                            % 点除的具体用法在后文介绍
y =
    1.0954    1.3421   -3.2807  -1.0061
在上例中,sin 是正弦函数,exp 是指数函数,这些都是 MATLAB 常用到的数学函数。

MATLAB 常用的基本数学函数及三角函数调用格式及说明如下表所示。

表 2 基本数学函数与三角函数调用格式及说明
调用格式 说明 调用格式 说明
abs(x) 数量的绝对值或向量的长度 sign(x) 符号函数(Signum function)。当 x<0 时, signx=-1; 当 x=0 时,signx=0;当
x>0 时,signx=1
angle(z) 复数 z 的相角(Phase angle) sin(x) 正弦函数
sqrt(x) 开平方 cos(x) 余弦函数
real(z) 复数 z 的实部 tan(x) 正切函数
imag(z) 复数 z 的虚部 asin(x) 反正弦函数
conj(z) 复数 z 的共轭复数 acos(x) 反余弦函数
round(x) 四舍五入至最近整数 atan(x) 反正切函数
fix(x) 无论正负,舍去小数至最近整数 atan2(x, y) 四象限的反正切函数
floor(x) 向负无穷大方向取整 sinh(x) 超越正弦函数
ceil(x) 向正无穷大方向取整 cosh(x) 超越余弦函数
rat(x) 将实数 x 化为分数表示 tanh(x) 超越正切函数
rats(x) 将实数 x 化为多项分数展开 asinh(x) 反超越正弦函数
rem 求两整数相除的余数 acosh(x) 反超越余弦函数
atanh(x) 反超越正切函数    

【实例】控制数字显示格式示例。
MATLAB 程序如下:
>> fix(pi)  % 舍去常量pi的小数
ans =
      3

数据的输出格式

一般而言,在 MATLAB 中数据的存储与计算都是以双精度进行的,但有多种显示形式。在默认情况下,若数据为整数,就以整数显示;若数据为实数,则以保留小数点后 4 位的精度近似显示。

用户可以改变数字显示格式,控制数字显示格式的命令是 format,其调用格式及说明如下表所示。

表 3 format调用格式及说明
调用格式 说明
format short 默认的格式设置,短固定十进制小数点格式,小数点后包含4位数
format long 长固定十进制小数点格式,double 值的小数点后包含 15 位数,single 值的小数点后包含7位数
format shortE 短科学记数法,小数点后包含 4 位数
format longE 长科学记数法,double 值的小数点后包含 15 位数,single 值的小数点后包含 7 位数
format shortG 使用短固定十进制小数点格式或科学记数法中更紧凑的一种格式,总共 5 位数
format longG 使用长固定十进制小数点格式或科学记数法中更紧凑的一种格式
format shortEng 短工程记数法,小数点后包含 4 位数,指数为 3 的倍数
format longEng 长工程记数法,包含 15 位有效位数,指数为 3 的倍数
format hex 16 进制格式表示
format + 在矩阵中,用符号“+”、“-”和空格表示正号、负号和零
format bank 货币格式,小数点后包含 2 位数
format rat 以有理数形式输出结果
format compact 输出结果之间没有空行
format loose 输出结果之间有空行
format 将输出格式重置为默认值,即浮点表示法的短固定十进制小数点格式和适用于所有输出行的宽松行距

【实例】控制数字显示格式示例。
MATLAB 程序如下:
>> format long , pi    % 将常量pi的格式设置为长固定十进制小数点格式,包含 15 位小数
ans =
      3.141592653589793

推荐阅读