• MATLAB cell & struct


    CELL

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

    a=cell(n,m)

    那么就把a初始化为一个n行m列的空cell类型数据。

    如何赋值呢?

    a{1,1}=rand(5)

    那么a的1行1列的单元中存储的就是一个随机的5×5的方阵了。

    那么要用第一个单元中的方阵中的某个值呢?

    可以如下引用:a{1,1}(2,3)

    就可以了,引用cell单元时要用{},再引用矩阵的某个数据就要用()了。

    cell单元中的每个单元都是独立的,可以分别存储不同大小的矩阵或不同类型的数据。

    下面举个例子:

    a=cell(2,2);%预分配
    a{1,1}='cellclass';
    a{1,2}=[1 2 2];
    a{2,1}=['a','b','c'];
    a{2,2}=[9 5 6];
    
    >> a{1,1}
    ans =
    cellclass
    
    >> a{1,2}
    ans =
    1 2 2
    
    >> a{2,:}
    ans =
    abc
    
    ans =
    9 5 6
    
    >> b=a{1,1}
    b =
    cellclass
    

    Struct

    结构体的赋值,这里不建议用下面这种形式进行统一赋值

    s = sturct('field1',values1,'field2',values2,…)

    而是建议直接赋值,就是对每一个属性进行单独赋值,因为每一个属性的长度不同,所以,直接赋值,就省去了声明的过程,方便,快捷;

    例如我们要声明下面的结构体:

    example.name='jiangnan_hugo';
    example.adress='beijing';
    example.age='23';
    

    直接输入以上语句便可。

    如果我们要查看结构体的所有值,那么可以直接输入结构体的名字,然后回车,就可以列出结构体的每项的名称和值,如果要显示某一个属性,通过单独调用,例如

    example.name
    ,便会显示其名称。

    如果我们要删除结构体的某一项属性,那么可以通过函数Rmfield,来实现,如果要增加一个属性,那么可以直接进行赋值便可。

    example=rmfield(example,'age')

    假如我们想要知道这个结构体具体有多少字段(属性),我们可以通过函数fieldnames获取字段名称,同时我们也可以通过函数isfield来判断是否存在某一字段。

    fieldnames(example)
    
    isfield(example,'age')
  • 相关阅读:
    jquery deferred对象
    一张图道尽Javascript的原型继承
    Reflection
    vim操作
    转载:HTTP调试工具:Fiddler的使用方法介绍
    转载:计算机网络面试题
    20120810
    new pad不能用usb充电的解决方法
    20120416
    Lua入门——环境安装
  • 原文地址:https://www.cnblogs.com/ZJUT-jiangnan/p/4840370.html
Copyright © 2020-2023  润新知