利用MATLAB解决问题的最基本操作就是定义一些变量,然后对变量进行运算操作。MATLAB提供了多种类型的变量,本节简要介绍最基础的变量类型以及相应的数据操作。
变量是任何程序设计语言的基本元素之一,MATLAB语言当然也不例外。在MATLAB中,变量的命名应遵循如下规则:
变量名必须以字母开头,之后可以是任意的字母、数字或下划线。
变量名区分字母的大小写。
变量名不超过31个字符,第31个字符以后的字符将被忽略。
与其他的程序设计语言相同,MATLAB中的变量也存在作用域。在未加特殊说明的情况下,MATLAB将所识别的一切变量视为局部变量,仅在其使用的M文件内有效。若要将变量定义为全局变量,则应当对变量进行说明,即在该变量前加关键字global。一般来说,全局变量均用大写的英文字符表示。
将某一有效数值赋给变量,那么此变量称为数值变量。在MATLAB下进行简单数值运算,只需在命令行窗口提示符“>>”之后直接输入,并按Enter键即可。例如,要计算145与25的乘积,可以直接输入:
>> 145*25 ans = 3625
用户也可以输入:
>> x=145*25 x = 3625
此时,MATLAB把计算值赋给指定的变量 x 。
MATLAB语言本身也具有一些预定义的变量,这些特殊的变量称为常量。表2-1给出了MATLAB语言中经常使用的一些特殊变量。
表2-1 MATLAB中的预定义变量
例2-1: 显示圆周率π(pi)的值。
解 在MATLAB命令行窗口提示符“>>”后输入“pi”,然后按Enter键,将出现以下内容:
>> pi % 查看常量pi的值 ans = 3.1416
这里,“ans”是指当前的计算结果,若计算时用户没有对表达式设定变量,系统就自动将当前结果赋给特殊变量“ans”。
在定义变量时应避免与常量名相同,以免改变这些常量的值。如果已经改变了某个常量的值,可以通过“clear+常量名”命令恢复该常量的初始设定值,或者重新启动MATLAB。
例2-2: 给圆周率π(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
当表达式比较复杂或重复出现的次数太多时,更好的办法是先定义变量,再由变量表达式计算得到结果。
例2-3:
分别计算
在
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-2所示。
表2-2 基本数学函数与三角函数调用格式及说明
例2-4: 控制数字显示格式示例。
解 MATLAB程序如下:
>> fix(pi) % 舍去常量pi的小数 ans = 3
一般而言,在MATLAB中数据的存储与计算都是以双精度进行的,但有多种显示形式。在默认情况下,若数据为整数,就以整数显示;若数据为实数,则以保留小数点后4位的精度近似显示。
用户可以改变数字显示格式。控制数字显示格式的命令是format,其调用格式及说明如表2-3所示。
表2-3 format调用格式及说明
例2-5: 控制数字显示格式示例。
解 MATLAB程序如下:
>> format long , pi % 将常量pi的格式设置为长固定十进制小数点格式,包含 15 位小数 ans = 3.141592653589793
MATLAB中的数据类型包括下面几种。
数值分为有符号、无符号整数(int)和单精度(float)、双精度(double)浮点数,具体如下:
(1)整型。整型数据是不包含小数部分的数值型数据,用字母I表示。整型数据只用来表示整数,以二进制形式存储。下面介绍整型数据的分类:
char:字符型数据,属于整型数据的一种,占用1个字节。
unsigned char:无符号字符型数据,属于整型数据的一种,占用1个字节。
short:短整型数据,属于整型数据的一种,占用2个字节。
unsigned short:无符号短整型数据,属于整型数据的一种,占用2个字节。
int:有符号整型数据,属于整型数据的一种,占用4个字节。
unsigned int:无符号整型数据,属于整型数据的一种,占用4个字节。
long:长整型数据,属于整型数据的一种,占用4个字节。
unsigned long:无符号长整型数据,属于整型数据的一种,占用4个字节。
(2)浮点型。浮点型数据只采用十进制,有两种形式,即十进制数形式和指数形式,具体如下:
①十进制数形式:由数码0~9和小数点组成,如0.0、0.25、5.789、0.13、5.0、300.、-267.8230。
例2-6: 显示十进制数字。
解 MATLAB程序如下:
>> 3.00000 ans = 3 >> 3 ans = 3 >> .3 ans = 0.3000 >> .06 ans = 0.0600
②指数形式:由十进制数加阶码标志“e”或“E”以及阶码(只能为整数,可以带符号)组成。其一般形式为
a E n
其中, a 为十进制数, n 为十进制整数,表示的值为 a ×10 n 。
例如,2.1E5等于2.1×10 5 ,3.7E-2等于3.7×10 -2 ,0.5E7等于0.5×10 7 ,-2.8E-2等于-2.8×10 -2 。
例2-7: 显示指数。
解 MATLAB程序如下:
>> 3E6 ans = 3000000 >> 3e6 ans = 3000000 >> 4e0 ans = 4 >> 0.5e5 ans = 50000
下面是几种常见的不合法的实数:
E7:阶码标志E之前无数字。
53.-E3:负号位置不对。
2.7E:无阶码。
浮点型变量还可分为两类:单精度型和双精度型。
float:单精度说明符,占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供7位有效数字。
double:双精度说明符,占8个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308,可提供16位有效数字。
逻辑值为1、0,分别代表真、假。
MATLAB中字符串是符号运算表达式的基本构成单元。
函数句柄是MATLAB中用来间接调用函数的一种语言结构,用于在使用函数过程中保存函数的相关信息,尤其是关于函数执行的信息。
一种无所不包的广义矩阵。组成单元数组的每一个元素称为单元。
MATLAB结构体与C语言相似,一个结构体可以通过字段存储多个不同类型的数据。