一 matlab的 cell数组 元胞数组: 元胞数组是MATLAB 的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。 ( 1)元胞数组的创建 >> a={'matlab',20;ones(2,3),1:10} a = 'matlab' [ 20] [2x3 double] [1x10 double] >> b=[{'matlab'},{20};{ones(2,3)},{1:10}] b = 'matlab' [ 20] [2x3 double] [1x10 double] >> c={10} c = [10] >> c(1,2)={2} c = [10] [2] >> c(2,2)={5} c = [10] [2] [] [5] >> isequal(a,b) ans = 1 >> whos Name Size Bytes Class Attributes a 2x2 388 cell ans 1x1 1 logical b 2x2 388 cell c 2x2 208 cell 用cell 函数创建元胞数组,创建的数组为空元胞。cell 函数创建空元胞数组的主要目的是为数组预先分配连续的存储空间,节约内存占用,提高执行效率。 >> a=cell(1) a = {[]} >> b=cell(1,2) b = [] [] >> c=cell(3,3) c = [] [] [] [] [] [] [] [] [] >> d=cell(2,2,2) d(:,:,1) = [] [] [] [] d(:,:,2) = [] [] [] [] >> whos Name Size Bytes Class Attributes a 1x1 4 cell ans 1x1 1 logical b 1x2 8 cell c 3x3 36 cell d 2x2x2 32 cell (2)元胞数组的数据获得 从元胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进行计算。元胞数组中数据的访问,可通过元胞内容的下标进行,用元胞数组名加大括号{}。大括号中数值表示元胞的下标。如a{1,2}表示元胞数组中第一行第二列的元胞。 >> a={20,'matlab';ones(2,3),1:3} a = [ 20] 'matlab' [2x3 double] [1x3 double] >> str=a(1,2) str = 'matlab' >> class(str) ans = cell >> str=a{1,2} str = matlab >> class(str) ans = char ()和{}有着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。 a = [ 20] 'matlab' [2x3 double] [1x3 double] >> a{2,1}(2,2) ans = 0.9134 >> a{2,1}(2,3) ans = 0.0975 >> a{1,2}(2) ans = a ...