2.1 MATLAB数值类型
MATLAB包括4种基本数据类型,即双精度数组、字符串数组、元胞数组、构架数组。而且数据之间可以相互转化,这为其计算功能开拓了广阔的空间。
1.变量与常量
变量是数值计算的基本单元。与C 语言等其他高级语言不同,MATLAB 语言中的变量无须事先定义,一个变量以其名称在语句命令中第一次合法出现而定义,运算表达式变量中不允许有未定义的变量,也不需要预先定义变量的类型,MATLAB会自动生成变量,并根据变量的操作确定其类型。
(1)MATLAB变量命名规则
MATLAB中的变量命名规则如下:
· 变量名区分大小写,因此A与a表示的是不同的变量。
· 变量名以英文字母开始,第一个字母后可以使用字母、数字、下画线,但不能使用空格和标点符号。
· 变量名长度不得超过31位,超过的部分将被忽略。
· 某些常量也可以作为变量使用,如i在MATLAB中表示虚数单位,但也可以作为变量使用。
常量是指那些在MATLAB中已预先定义其数值的变量,默认的常量如表2-1所示。
表2-1 MATLAB默认常量
(2)MATLAB变量的显示
任何 MATLAB 语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。format只影响结果的显示,不影响其计算与存储。MATLAB总是以双字长浮点数(双精度)来执行所有的运算。如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有表2-2所示的几种形式。
表2-2 MATLAB的数据显示格式
(3)MATLAB变量的存取
工作空间中的变量可以用save命令存储到磁盘文件中。输入命令“save<文件名>”,将工作空间中全部变量存到“<文件名>.mat”文件中去,若省略“<文件名>”则存入文件matlab.mat中;命令“save <文件名> <变量名集>”将“<变量名集>”指出的变量存入文件“<文件名>.mat”中。
用load命令可将变量从磁盘文件读入MATLAB的工作空间,其用法为“load <文件名>”,它将“<文件名>”指出的磁盘文件中的数据依次读入名称与“<文件名>”相同的工作空间中的变量中去。若省略“<文件名>”则从matlab.mat中读入所有数据。
用clear命令可从工作空间中清除现存的变量。
2.字符串
字符是 MATLAB中符号运算的基本元素,也是文字等表达方式的基本元素,在MATLAB中,字符串作为字符数组用单引号(')引用到程序中,还可以通过字符串运算组成复杂的字符串。字符串数值和数字数值之间可以进行转换,也可以执行字符串的有关操作。
3.元胞数组
元胞是元胞数组(Cell Array)的基本组成部分。元胞数组与数字数组相似,以下标来区分,元胞数组由元胞和元胞内容两部分组成。用花括号“{ }”表示元胞数组的内容,用圆括号“()”表示元胞元素。与一般的数字数组不同,元胞可以存放任何类型、任何大小的数组,而且同一个元胞数组中各元胞的内容可以不同。
【例2-1】元胞数组创建与显示实例。
解:MATLAB程序代码如下。
A(1, 1)={'An example of cell array'}; A(1, 2)={[1 2;3 4]}; A{2, 1}=tf (1, [1, 8]); A{2, 2}={A(1, 2);'This is an example'};
celldisp(A) %显示该元胞数组
元胞数组A的第1行用元胞数组标志法建立一个字符串和一个矩阵;第2行用元胞内容标志法,建立一个传递函数和一个由两个元素组成的元胞组,该元胞组分别是矩阵和字符串,最后,用celldisp函数显示该元胞数组A。
4.构架数组
与元胞数组相似,构架数组(Structure Array)也能存放各类数据,使用指针方式传递数值。构架数组由结构变量名和属性名组成,用指针操作符“.”连接结构变量名和属性名。例如,可用parameter.temperature表示某一对象的温度参数,用parameter.humidity表示某一对象的湿度参数等,因此,该构架数组parameter由两个属性组成。
5.对象
面向对象的 MATLAB 语言采用了多种对象,如自动控制中常用的传递函数模型对象(tf object)、状态空间模型对象(ss object)和零极点模型对象(zpk object),一些对象之间可以相互转换,例如可以从传递函数模型对象转化为零极点模型对象,这将在后面具体介绍。