matlab cell 颜色,MATLAB 的 cell 大法(单元格数组)

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

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  元胞数组的创建

创建方法有 3 种:直接赋值法、利用函数cell()、利用{ }直接创建元胞数组的所有单元。

1.1 直接赋值法

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

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

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

e74010d08d43b17810333f6188358e58.png 

3eece49596a686b87450ca5c2503ff33.png

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

878c1290627d5e9ba632ab9b69b4ecf1.png 

ca860912c99924a0678ba2e5339ba736.png

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

利用函数cell() 可以创建一个元胞数组,还可以规定其大小。

f13c60be795bf1193dfdc7e3a1c6bdab.png

1.3 利用{ }直接创建元胞数组(的所有单元)

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

利用 { } 创建元胞数组的格式为:

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

91b1fbc46481f4e5befa51b35b700bd4.png

2  元胞数组的寻访

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

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

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

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

ae0660c2f46b97e2e77e6614a71a5fdf.png   

b9563518795611b8cf3a931d5facd225.png

(3)此外,可以用celldisp(  )函数对元胞数组的所有内容进行寻访。

9a8b2e0eaae5c846645fae547ddbde10.png 

6e3cea9b799cf221a79142730383c836.png 

5227185315b326805743fee8767327fc.png

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】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值