本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

访问元胞数组中的数据

此示例说明如何在元胞数组中读取和写入数据。

创建一个由文本和数值数据组成的 2×3 元胞数组。

C = {'one', 'two', 'three'; 
     1, 2, 3}
C=2×3 cell
    {'one'}    {'two'}    {'three'}
    {[  1]}    {[  2]}    {[    3]}

引用元胞数组的元素有两种方法。将索引括在圆括号 () 中以引用元胞集,例如,用于定义一个数组子集。将索引括在花括号 {} 中以引用各个元胞中的文本、数字或其他数据。

使用圆括号 () 的元胞索引

圆括号中的元胞数组索引引用元胞集。例如,要创建一个属于 C 的子集的 2×2 元胞数组,请使用圆括号。

upperLeft = C(1:2,1:2)
upperLeft=2×2 cell
    {'one'}    {'two'}
    {[  1]}    {[  2]}

通过将元胞集替换为相同数量的元胞来更新这些元胞集。例如,将 C 的第一行中的元胞替换为大小相等 (1×3) 的元胞数组。

C(1,1:3) = {'first','second','third'}
C=2×3 cell
    {'first'}    {'second'}    {'third'}
    {[    1]}    {[     2]}    {[    3]}

如果数组中的元胞包含数值数据,可以使用 cell2mat 函数将这些元胞转换为数值数组。

numericCells = C(2,1:3)
numericCells=1×3 cell
    {[1]}    {[2]}    {[3]}

numericVector = cell2mat(numericCells)
numericVector = 1×3

     1     2     3

numericCells 是一个 1×3 的元胞数组,但 numericVector 是一个 double 类型的 1×3 数组。

使用花括号 {} 的内容索引

通过使用花括号进行索引来访问元胞的内容,即元胞中的数字、文本或其他数据。例如,要访问 C 的最后一个元胞的内容,请使用花括号。

last = C{2,3}
last = 3

last 为一个 double 类型的数值变量,因为该元胞包含 double 值。

同样,您也可以使用花括号进行索引来替换元胞的内容。

C{2,3} = 300
C=2×3 cell
    {'first'}    {'second'}    {'third'}
    {[    1]}    {[     2]}    {[  300]}

您可以使用花括号进行索引来访问多个元胞的内容。MATLAB® 会以逗号分隔的列表形式返回这些元胞的内容。因为每个元胞可以包含不同类型的数据,所以无法将此列表分配给单个变量。但是,您可以将此列表分配给与元胞数量相同的变量。MATLAB® 将按列顺序赋给变量。

C 的四个元胞的内容赋给四个变量。

[r1c1, r2c1, r1c2, r2c2] = C{1:2,1:2}
r1c1 = 
'first'
r2c1 = 1
r1c2 = 
'second'
r2c2 = 2

如果每个元胞都包含相同类型的数据,则可以通过将数组串联运算符 [] 应用于逗号分隔的列表来创建单个变量。

将第二行的内容串联到数值数组中。

nums = [C{2,:}]
nums = 1×3

     1     2   300

另请参阅

|

相关主题