![MATLAB 8.5基础教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/310/31304310/b_31304310.jpg)
上QQ阅读APP看书,第一时间看更新
3.2 单元数组
单元数组又称细胞数组(Cell Array),其基本元素是细胞,每个细胞可以存储不同类型、不同维数的数据。
3.2.1 单元数组的创建
单元数组中不同位置可有不同数据类型,它可以有数字、字符串组成,其创建方法有以下几种。
1.使用大括号{}直接创建
例如:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-25.jpg?sign=1739040069-xy326sGWjSEQQgujxkSz6Vtkq8PmDqSD-0-bab6f7c4b23bd55c19592b1b886f9732)
2.对细胞元素直接赋值创建
【例3-1】 创建一个学生的各科成绩单元数组。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-26.jpg?sign=1739040069-ADDe8cXPPiXI6xdP23BRmY86ub62qgdA-0-5fbbba6ee8445161881f916167c6f21e)
运行结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-27.jpg?sign=1739040069-6wXMklqxN7AEMEFSa8jEdfZt3SI14EsE-0-92c643c90a8fbf454fb3fc5a26ffce18)
3.利用函数cell创建一个大小合适的空矩阵
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-28.jpg?sign=1739040069-p9XjCVz1eTJsv5nWiHPv2xuBuTLQXeIv-0-0d1c5958f6e1672e0a4b59633f327772)
【例3-2】 创建2×3的细胞数组。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-29.jpg?sign=1739040069-1sjbdYkDbQt6H5ha39Pk0bVWitRgqPus-0-32089883ffcf46ee83e992e38b9df241)
注:该方法首先使用cell()函数定义一个单元数组。此时,数组的各元素还没有定义,因此所显示的单元数组中元素都用空阵[]来表示。然后,依次输入单元数据中各元素的值,可以发现,每输入一个值,用相应的值代替空阵。
3.2.2 单元数组的显示
1.celldisp()函数
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-30.jpg?sign=1739040069-wZRI2wJ8Oefr3hlp74WjAOzBkpcrVlTO-0-86062661f5f945260b66694e8b12bf87)
例如,对【例3-2】中的细胞数组C,执行命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-31.jpg?sign=1739040069-zPlz444tu5sTACJaQ8La9AlTDe2joPSO-0-539e5df70c4c0a0851d069fecc996e72)
显示结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-32.jpg?sign=1739040069-oYbdqW9W2T4oEb4oDdxR2MKEbJpujCKx-0-10297d01c49e92103910c1edbd979ae0)
2.cellplot()函数
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-33.jpg?sign=1739040069-z4DQ3EhX5RpydWZFXMQh0jhlcDsYiAn4-0-183eca9cda80c220a89c1fbc623830c4)
例如,对【例3-2】中的细胞数组C,继续执行命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-34.jpg?sign=1739040069-xI3KspvO9U6kfqZG418YBr9HjsViC4MQ-0-d0d2453e43739acab2f79b37b9e226d2)
显示结果如图3-1所示。
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-35.jpg?sign=1739040069-Zo1hN8j5o0lIDF5wja58MpXsq1Gl8q75-0-9b4977e8a999d583df26b302b08b96e2)
图3-1 单元型变量的结构
3.2.3 单元数组的内容获取
为了获取单元数组中一个单元的值,可使用大括号。例如,对【例3-2】中的数组C,执行命令:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-36.jpg?sign=1739040069-krkwFSd2KfFmN3kX8YbUECTokDQFmlMc-0-556605e2ef0418488295513bf14635f2)
实际上,C{1}相当于C{1,1},C{2}相当于C{2,1},C{3}相当于C{1,2}。注意大括号与小括号的不同,大括号用于表示单元而不考虑这些单元的值,而小括号用于寻址单元的值。例如:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-38.jpg?sign=1739040069-Y4NMy1UTKLscpM2sdk6tHBoHE2kex3rV-0-c1a2120027afb64ae87b84f9337b34ca)
3.2.4 单元数组的数据处理
MATLAB的单元数组在进行统计分析时,不能直接使用计算统计量的函数,而必须将单元数组中单元的数值转化成数值向量,然后进行数值计算。
例如,对【例3-1】中形成的数组,计算这个学生的总成绩。
由于数组B的显示结果为:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-39.jpg?sign=1739040069-5n7J6DsK8bvIBSBxWKuWC7Ehum0YpG42-0-eb15536b05308f98f62ebc932b055746)
若直接对B的第2行求和,命令行窗口显示出错。这时需将单元数组转化成数值数组,具体程序如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-40.jpg?sign=1739040069-T2UOiElja9rHK6j7BE2f5VpZUDGpvTwP-0-1f1f5c8194f2a0b04bb8941f4932017a)
运行结果如下:
![](https://epubservercos.yuewen.com/0A09AD/16948915905056606/epubprivate/OEBPS/Images/978-7-111-53210-1-Chapter03-41.jpg?sign=1739040069-IqDXeRffwKaHmCNxOHzl2qwjHfAPBRZa-0-c3aa60d14024bac829899f19a75b9189)