找回密码
 注册
关于网站域名变更的通知
查看: 456|回复: 1
打印 上一主题 下一主题

matlab中cell数组用法

[复制链接]
  • TA的每日心情

    2019-11-20 15:22
  • 签到天数: 2 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-12-18 17:28 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x

    第一次接触cell数据是因为做一个数据处理时由于数据量太大excel的vlookup奔溃而数据库不熟练只能硬着头皮强行导入matlab匹配,其中有一列数据为年月日时分秒,还好matlab有cell数组,中间使用也遇到一些问题,现在总结一下用法方便以后复习和可能会用到的朋友。

    cell数组一般被叫做元胞数组,它的每个单元可以储存不同的数据类型,可以是数值,字符或矩阵或元胞数组等,类似于学过的c语言里的结构体

    1.cell数组的创建

    可以直接通过{}类似于矩阵的直接赋值:a={'winter',123,'coming','哈哈'};

    也可以通过cell函数预分配内存,再赋值:a=cell(1,4);a={'winter',123,'coming','哈哈'};

    2.cell数组的访问

    与普通矩阵,数组的主要区别在于:通过()访问cell数组时访问到的是cell单元,通过{}访问cell数组时访问到的是cell单元储存的内容,举例如下图所示,其他操作基本一样。

    3.cell数组相关的函数

    cell:创建空的元胞数组,预分配内存

    celldisp:显示元胞数组所有内容

    cellplot:利用图形方式显示内容(因缺思厅!)

    cell2mat:将元胞数组成普通矩阵(要求cell元胞数组的所有内容都必须为相同数据类型,可以为字符,会转化为字符矩阵)

    mat2cell:将普通矩阵转化成元胞数组

    iscell:判断输入是否为元胞数组

    cellfun:为cell数组的每个cell单元的内容执行指定的函数,fun可以是特殊的函数或者句柄

    A = cellfun(func,C) 将函数 func 应用于元胞数组 C 的每个元胞的内容,每次应用于一个元胞。然后 cellfun 将 func 的输出串联成输出数组 A,因此,对于 C 的第 i 个元素来说,A(i) = func(C{i})。输入参数 func 是一个函数的函数句柄,此函数接受一个输入参数并返回一个标量。func 的输出可以是任何数据类型,只要该类型的对象可以串联即可。数组 A 和元胞数组 C 具有相同的大小。(官网解释)

    默认情况下,cellfun 将 func 的输出串联成数组。func 必须返回标量。如果 func 返回对象,则对象所属的类必须满足以下要求。

    • 支持通过对象数组的线性索引进行赋值

    • 具有一个 reshape 方法,可返回与输入大小相同的数组


      ! k' p8 n& H. Z7 s# M

    如果 'UniformOutput' 名称-值对组参数的值为 false (0),则 cellfun 将以元胞数组形式返回输出。在这种情况下,func 的输出可以具有任意大小和不同的数据类型。

    b={[1,2,1];[2,1,1];[1,1,2]};c=cellfun(@(x)(mat2str(x)),b,'un',0)- E, @! v5 E+ y' G, P


    ( v( b' ]; C) ^: P4 R1 e) Z! f

    4.cell单元的删除

    我们知道矩阵及矩阵的删除可以通过[]实现:

    元胞数组操作类似但和其赋值一样有区别,区别就在于{}和()

    a={1,2,3};

    a{1}=[];%并不能删除第一个cell单元,只是变成空值

    a(1)=[];%删除第一个单元

    a(: )=[];%一次性删除所有cell单元


    / F- G8 K6 _3 R  s3 k

    该用户从未签到

    2#
    发表于 2020-12-18 17:55 | 只看该作者
    matlab中cell数组用法
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-21 07:39 , Processed in 0.109375 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表