• cell数组


     问题:

    (注意,matlab判断一个数的类型的函数是class(var))

    如果p为一个数,那么h(1)=p,是没有问题的。

    如果p为一个向量,那么h(1,:)=p是没有问题的。

    如果p是一个矩阵的话,上面的两种赋值方法都是会有错误的。

    那么要如何处理呢 ????

    这时就用到了cell数据类型了。cell的每个单元都可以存储任何数据,比如传递函数等。当然,存储矩阵更是没有问题的了。但是用cell数据类型之前,要先初始化。

    1、细胞型数据的定义

    1)直接赋值定义:细胞型变量在定义时需要使用大括号,元素用都好隔开

         例: B = {1:4,A,‘abcd’}

    2)使用cell函数,预先为细胞型变量定义空间

         例: A = cell(m,n) 定义一个空的m行n列的cell类型

    2、细胞型数据的访问

    1)对细胞型变量元素的引用应当采用大括号作为下标的标示,用小括号作为下标标示时,将只显示该元素的压缩形式。

    比如:

    A = {1:4,2.5,‘abc’};
    >> A

    A =

    [1x4 double] [2.5000] 'abc'

    >> A(1,1)

    ans =

    [1x4 double]
    >>  A{1,1}

    ans =

    1 2 3 4
    >> A(1,2)

    ans =

    [2.5000]

    >> A{1,2}

    ans =

    2.5000
    >>  A(1,3)

    ans =

    'abc'
    >> A{1,3}

    ans =

    abc
    >> A{1,1}(2)

    ans =

    2



    2 ) 改变cell类型元素的值

    >> A{1,2} = 3:4
    A =
    [1x4 double] [1x2 double] 'abc'
    >>  A{1,2}
    ans =
    3 4

    3)删除cell中的元素,需要用A(1)=[],若使用A{1}=[]只能将该元素置空不能删除

    >> A
    A =

    [1x4 double] [1x2 double] 'abc'

    >> A(2) =  []
    A =

    [1x4 double] 'abc'

    >> A{2} = []
    A =

    [1x4 double] []

    4) cell函数

    cellplot(A)

    cell(m,n) 创建一个m行n列的细胞型变量

    cellfun('fun’,A) 对细胞型变量A作用fun函数,fun可以为isreal,isempty,length,islogical,ndims等
    celldisp(A) 完全显示细胞型变量的内容
    cellplot(A) 用图形显示细胞型变量的内容
    num2cell 将数值数组转换为细胞型变量
    deal 输入输出处理
    cell2struct 将细胞型变量转换为结构型变量
    struct2cell 将结构型变量转换为细胞型变量
    iscell 判断是否为细胞型变量
    reshape 改变细胞型数组的结构

    注意事项:

    names={'s1'};     %或  names=cell(1, 1); 
    names{1} = 's1';
    names={names{1,:}, 's2'}; %在字符串数组后面append一个字符串。
    names={names{1,:}, 's3'};      %在字符串数组后面append一个字符串。
    % 这时names是一个1x3的字符串数组,若要变成3x1的数组,可以:
    names = names';


  • 相关阅读:
    Unique Paths II
    Search Insert Position
    Remove Duplicates from Sorted Array
    Swap Nodes in Pairs
    Merge Two Sorted Lists
    下载youtube 视频工具
    CloudSTack4.2 查看所有虚拟机API测试
    实现业务系统中的用户权限管理--实现篇
    实现业务系统中的用户权限管理--设计篇
    CloudStack4.2 更新全局参数
  • 原文地址:https://www.cnblogs.com/xiongyunqi/p/3737719.html
Copyright © 2020-2023  润新知