admin 管理员组

文章数量: 1086019


2024年3月12日发(作者:erlang公式)

元胞数组是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]


本文标签: 元胞 数组 表示