资源描述:
《MATLAB元胞数组(cell)知识》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MATLAB元胞数组(cell)知识(本资料来源于网络,所有权归原作者所有,如有侵权尽快删除)元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看作一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。(1)元胞数组的创建>>a={'matlab',20;ones(2,3),1:10}a='matlab'
2、 [ 20] [2x3double] [1x10double]>>b=[{'matlab'},{20};{ones(2,3)},{1:10}]b='matlab' [ 20] [2x3double] [1x10double]>>c={10}c=[10]>>c(1,2)={2}c=[10] [2]>>c(2,2)={5}c=[10] [2][] [5]>>isequal(a,b)ans= 1>>whosName Size Byt
3、esClass Attributesa 2x2 388cell ans 1x1 1logical b 2x2 388cell c 2x2 208cell用cell函数创建元胞数组,创建的数组为空元胞。cell函数创建空元胞数组的主要目的是为数组预先分配连续的存储空间,节约内存占用,
4、提高执行效率。 >>a=cell(1)a={[]}>>b=cell(1,2)b=[] []>>c=cell(3,3)c=[] [] [][] [] [][] [] []>>d=cell(2,2,2)d(:,:,1)=[] [][] []d(:,:,2)= [] [][] []>>whosName Size BytesClass Attributesa 1x1 4cell
5、 ans 1x1 1logical b 1x2 8cell c 3x3 36cell d 2x2x2 32cell (2)元胞数组的数据获得从元胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进行计算。元胞数组中数据的访问,可通
6、过元胞内容的下标进行,用元胞数组名加大括号{}。大括号中数值表示元胞的下标。如a{1,2}表示元胞数组中第一行第二列的元胞。>>a={20,'matlab';ones(2,3),1:3}a=[ 20] 'matlab'[2x3double] [1x3double]>>str=a(1,2)str='matlab'>>class(str)ans=cell>>str=a{1,2}str=matlab>>class(str)ans=char()和{}有着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。a=
7、[ 20] 'matlab' [2x3double] [1x3double]>>a{2,1}(2,2)ans=0.9134>>a{2,1}(2,3)ans=0.0975>>a{1,2}(2)ans=a使用元胞的下标,可将一个元胞数组的子集赋值给另一个变量,创建新的元胞数组。>>a=[{1},{2},{3};{4},{5},{6};{7},{8},{9}]a=[1] [2] [3][4] [5] [6][7] [8] [9]>>b=a(2:3,2:3)b=[5] [6][8
8、] [9]>>c=a(1:3,2:3)c=[2] [3][5] [6][8] [9]本例使用元胞下标的方式创建了新的元胞数组b和c,通过结果看出b和c就是元胞数组a的一部分。(3)元胞数组的删除和重塑 要删除单元数组中的行或列,可以用冒号表示单元