在MATLAB中有15种基本的数据类型,它们用图1.2中的小写字符表示.用户也可以自己定义类型,称为自定义类型.
图1.2 数据类型
逻辑类型表示真与假,取值为0表示假、为1表示真,它们是关系运算或逻辑运算的结果,也是逻辑函数的运算结果.
字符类型(char)可以用来保存字符与字符串.MATLAB中没有设置字符串类型,但是可以用char类型的数组来表示一个字符串.多个字符串可以用char类型的二维数组来表示,只要这些字符串的长度相同就行,如果长度不同,就需要在字符串尾部衬垫空格,也可以使用cell数组来表示.比如 m 个长度为 n 的字符串可以用一个char类型的 m × n 数组来表示.
例题1.3 下面命令
产生一个5×9的字符数组s,它表示5个长度不同字符串.
由于字符串不等长,MATLAB将自动为每个字符串尾部增加空格来补成长度相同的字符串,使得每个字符串长度都为9个字符,因为最长串为9个字符.这种方法生成的字符数组称为 衬垫数组 .比如:第3个字符串可以用命令
>>s3=s(3,:)
得到.用whos命令可以看出s3是一个1×9的字符数组,而不是1×5字符数组.
例题1.4 多个不等长字符串也可以使用cell数组来生成,这种方法生成的数组不必在尾部衬垫空格.如下命令
可生成一个cell字符数组.比如:第3个字符串可以用命令
>>s3=cs(3)
得到.用whos命令可以看出s3是一个1×1的cell数组,如果要作为字符串使用需要用char(s3)进行强制转换为字符串.
数值类型只有两种:单精度与双精度浮点类型,所有MATLAB的运算都是以双精度类型进行的.
cell数组提供了一种存储不同种类数据的机制.可以利用它来存储各种类型数据,不管它们长度与类型是否相同.存取数组中的元素使用下标.
结构类型也可以存储各种类型数据,但需要定义域名,存取时需要用名字来存取,而不能像数组那样用下标存取.表1.2列出了数据类型的详细情况.
表1.2 MATALB的数据类型
续表
MATLAB支持数据文件,这个文件可以将工作空间中的所有变量及其对应的值保存到扩展名为.mat文件中.也可以保存到扩展名为.txt的文本文件中.涉及的主要命令函数为clear、load、save.
clear:可以清除工作空间中所有变量;
load:可以装载数据文件中的所有变量及其数据.
save:用于保存工作空间中所有变量到一个mat数据文件.
whos:显示工作空间中的所有变量.
例题1.5 下列代码eg1_5.m首先清除工作空间中所有变量,接着创建一个文件变量savefile,然后使用save将变量 p 、 q 及其对应的数据保存到变量savefile所指定的数据文件pqfile.mat中.
例题1.6 下列代码eg1_6.m将结构变量 s 1 及其 3 个域中数据保存到数据文件newstruct.mat中,用带参数的whos可以显示该文件中的变量内容,用带参数的clear命令只清除工作空间中 s 1变量,执行不带参数的whos命令可以发现工作空间中已经没有结构变量 s 1,执行load语句后,再用whos命令可以发现工作空间中又有结构变量 s 1.
练习1.1 使用本小节介绍的4个命令clear,load,save,whos处理MATLAB自带的数据文件accidents.mat和handel.mat.
练习1.2 将如下表格中数据保存到cxy.mat数据文件中.