精通MATLAB神经网络
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 MATLAB数值类型

MATLAB包括4种基本数据类型,即双精度数组、字符串数组、元胞数组、构架数组。而且数据之间可以相互转化,这为其计算功能开拓了广阔的空间。

1.变量与常量

变量是数值计算的基本单元。与C 语言等其他高级语言不同,MATLAB 语言中的变量无须事先定义,一个变量以其名称在语句命令中第一次合法出现而定义,运算表达式变量中不允许有未定义的变量,也不需要预先定义变量的类型,MATLAB会自动生成变量,并根据变量的操作确定其类型。

(1)MATLAB变量命名规则

MATLAB中的变量命名规则如下:

· 变量名区分大小写,因此Aa表示的是不同的变量。

· 变量名以英文字母开始,第一个字母后可以使用字母、数字、下画线,但不能使用空格和标点符号。

· 变量名长度不得超过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),一些对象之间可以相互转换,例如可以从传递函数模型对象转化为零极点模型对象,这将在后面具体介绍。