MATLAB 基础知识 数据类型 元胞数组 访问元胞数组中的数据

本文说明如何在元胞数组中读取和写入数据。

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

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

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

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

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

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

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

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

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

numericCells = C(2,1:3)
numericCells=1×3 cell array
    {[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 array
    {'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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结冰架构

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值