网站建设学多久,网站建设丨找王科杰效果好,搜索引擎优化 简历,非主流在线制作图片5.3 Cell数组的基本操作 本小节结合示例对元胞数组的一些基本操作进行介绍。 【例3-26】 元胞数组的合并。 C1 {Jan Feb; 10 17; uint16(2004) uint16(2001)}; C2 {Mar Apr May; 31 2 10; ... uint16(2006) uint16(2005) uint16(1994)}; C3… 5.3 Cell数组的基本操作 本小节结合示例对元胞数组的一些基本操作进行介绍。 【例3-26】 元胞数组的合并。 C1 {Jan Feb; 10 17; uint16(2004) uint16(2001)}; C2 {Mar Apr May; 31 2 10; ... uint16(2006) uint16(2005) uint16(1994)}; C3 {Jun; 23; uint16(2002)}; C1 C1 Jan Feb 10 17 [2004] [2001] C2 C2 Mar Apr May 31 2 10 [2006] [2005] [1994] C3 C3 Jun 23 [2002] C4 {C1 C2 C3} %生成嵌套元胞数组 C4 {3x2 cell} {3x3 cell} {3x1 cell} C5 [C1 C2 C3] %生成元胞数组 C5 Jan Feb Mar Apr May Jun 10 17 31 2 10 23 [2004] [2001] [2006] [2005] [1994] [2002] whos% 查看变量的结构 Name Size Bytes Class Attributes C1 3x2 696 cell C2 3x3 1042 cell C3 3x1 348 cell C4 1x3 2422 cell C5 3x6 2086 cell 【例3-27】 元胞数组的删除。 本例在上例的基础上进行计算。 C5(:,3)[] %删除元胞数组C5的第3列 C5 Jan Feb Apr May Jun 10 17 2 10 23 [2004] [2001] [2005] [1994] [2002] 5.4 Cell数组操作函数 和其他数组一样MATLAB也为元胞数组提供了一系列的操作函数对此进行了简要归纳如表3-7所示。 表3-7元胞数组中的操作函数函 数说 明函 数说 明 cell创建空的元胞数组num2cell将数值数组转换为元胞数组 cellfun对元胞数组的每个元胞执行指定的函数mat2cell将数值矩阵转换为元胞数组 celldisp显示所有元胞的内容cell2struct将元胞数组转换为结构 cellplot利用图形方式显示元胞数组struct2cell将结构转换为元胞数组 cell2mat将元胞数组转换为普通的矩阵iscell判断输入是否为元胞数组 【例3-28】 cellfun函数使用示例。 clear a{20,matlab,3-7i;ones(2,3),1:3,0} a [ 20] matlab [3.0000 - 7.0000i] [2x3 double] [1x3 double] [ 0] bcellfun(isreal,a)% 判断a中各元素是否是实数 b 1 1 0 1 1 1 ccellfun(length,a)% 查看a中各元素的长度 c 1 6 1 3 3 1 dcellfun(isclass,a,double)% 判断a中各元素是否是double型 d 1 0 1 1 1 1 A {1:10, [2; 4; 6], []}; averages cellfun(mean, A)% 将mean函数应用于每一个元胞元素 averages 5.5000 4.0000 NaN [nrows, ncols] cellfun(size, A)% 将size函数应用于每一个元胞元素 nrows 1 3 0 ncols 10 1 0 whos Name Size Bytes Class Attributes A 1x3 440 cell a 2x3 788 cell averages 1x3 24 double b 2x3 6 logical c 2x3 48 double d 2x3 6 logical ncols 1x3 24 double nrows 1x3 24 double 从例子中可以看出cellfun函数的主要功能是对元胞数组的元素(元胞)分别应用不同的函数在这里前面四个函数的调用是通过直接用单引号括起来的文本来实现的通过这种形式可以在cellfun函数中使用的函数数量是有限的详见表3-8。 如果用户需要调用其他函数的话那么就不能用文本作为输入而是用函数句柄进行输入。例如后面两个例子。 表3-8能在cellfun中使用的函数函 数说 明函 数说 明 isempty若元胞元素为空则返回逻辑真length元胞元素的长度 islogical若元胞元素为逻辑类型则返回逻辑真ndims元胞元素的维数 isreal若元胞元素为实数则返回逻辑真prodofsize元胞元素包含的元素个数 size返回元胞元素的尺寸isclass元胞元素是否属于某一类型 【例3-29】 显示元胞数组内容函数celldisp和cellplot使用示例。 本例在上例的基础上演示函数celldisp和cellplot的使用方法。 celldisp(a)%显示元胞数组的所有元素 a{1,1} 20 a{2,1} 1 1 1 1 1 1 a{1,2} matlab a{2,2} 1 2 3 a{1,3} 3.0000 - 7.0000i a{2,3} 0 cellplot(a) %以图片表示元胞数组的基本结构 输出图形如图3-5所示。 图3-5 输出图形