MATLAB 的 cell 大法(单元格数组)

 

MATLAB 的 cell,称单元格数组 or 元胞数组:使用频率特别高,甚至比 struct 结构体还高。html

MATLAB文档给出的 cell 官方定义:编程

  A cell array is a collection of containers called cells in which you can store different types of data.数组

  精华之处就是在能够存储不一样类型的数据.能够是Matlab的类型或者自定义的类型.数据结构

  一个元胞数组的一个单元可能包含:一个实数数组 or 字符型数组 or 复数数组 or 元胞数组(嵌套啦)函数

 

1  元胞数组的建立spa

  建立方法有 3 种:直接赋值法、利用函数cell()、利用{ }直接建立元胞数组的全部单元。.net

  1.1 直接赋值法3d

    经过赋值语句把值赋到单元数组的一个单元中,但每一次赋值只能建立一个单元内容。指针

    两种赋值方法:内容索引法(content indexing)和单元索引法(cell indexing)。htm

    (1)内容索引法:赋值语句的左边用大括号 { } 将标识单元的下标括起来,右边为单元的内容。

        

    (2)单元索引法:赋值语句的左边用小括号 () 将标识单元的下标括起来,右边用大括号将存储于单元中的数据括起来。

             

  1.2 利用函数cell() ——较为经常使用

     利用函数cell() 能够建立一个元胞数组,还能够规定其大小。

    

  1.3 利用{ }直接建立元胞数组(的全部单元)

    这是一种快捷的元胞数组建立方法,利用 { } 能够直接快速地建立所需元胞数组。在大括号中一次列出所需建立元胞数组的内容,它们之间用逗号(,)隔开,行与行之间用分号(;)隔开,这样就能够建立一个已经初始化好的元胞数组。

    利用 { } 建立元胞数组的格式为: 
     cellname={[cell 1,1],[cell 1,2],......,[cell 1,n] ; ...... ; [cell m,1],[cell m,2],......,[cell m,n]};  %此即为建立了一个 m×n 的元胞数组,并将单元进行了初始化。
    

 

2  元胞数组的寻访

在编程时,一个元胞数组的每个单元都是一个指针,指向其余的数据结构,而这些数据结构能够是不一样的数据类型。 在MATLAB中,元胞数组建立时,没有显示内容单元的内容,显示的只是它相应的数据类型。而MATLAB能够经过单元的名称来寻访其单元包含的内容。

在MATLAB中,元胞数组的寻访有如下两种形式。

(1)用( )将下标括起来寻访其单元的结构类型。

(2)用{ }将下标括起来寻访其单元的内容。

   

 (3)此外,能够用celldisp(  )函数对元胞数组的全部内容进行寻访。

  

 PS:

关于cell的访问:

1.X= C(s)使用这种"()"形式的返回的是cell类

2.X = C{s}使用这种"{}"形式的返回的是cell中的内容

3.其余的基本上与一般的数组.矩阵访问同样了

4.A{1,1}(2,3:end)访问的是A中的第一个cell里面内容的第2行的第三个元素之后的全部元素

5.A{1,3}.name访问的是A中的A{1,3}cell里面结构的name值

6.cell的图形化显示使用命令cellplot(A)便可如B={[1;2]},这就定义了一个cell型的变量B,里面保存的是一个矩阵[1;2],要引用里面的数据只要在大括号里写上对应的下标便可,如B{1}。

 下面咱们给B再加个元素,咱们能够这样定义B(2)={'hello'}。也能够利用引用的方法定义B{2}='hello'。第二种方法比第一种方法更方便因此更经常使用。

  这样B就有两个元素了,B(1)是{[1;2]},B(2)是{'hello'},每一个元素都是cell型的(注意和B{1}、B{2}的区别,B{1}是[1;2],B{2}是'hello')。

 

 

 

 

 

 

 

【Reference】

一、http://blog.sina.com.cn/s/blog_8259d70901017wit.html

二、https://blog.csdn.net/northhan/article/details/52685664

相关文章
相关标签/搜索