发现matalb中的cell类型
matlab中的cell类型
如果p为一个数,那么h(1)=p,是没有问题的。
如果p为一个向量,那么h(1,:)=p是没有问题的。
如果p是一个矩阵的话,上面的两种赋值方法都是会有错误的。
那么要如何处理呢?
这时就用到了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单元时要用{},再引用矩阵的某个数据就要用()了。
例子
若定义Nx = {-1, 1, 0, 0, -1, -1, 1, 1} 代表了一行八列的八个单元
Nx(1)显示第一个单元 [-1]
Nx{1}显示第一个单元里的数值-1
而Nx = {[-1, 1, 0, 0, -1, -1, 1, 1]}则代表一个单元里有一个矩阵
(有[]就代表矩阵)
若Nx = {{-1}, {1}, {0}, {0}, {-1}, {-1}, {1}, {1}]定义了嵌套的八个单元
不能用Nx(1)查看数据了
只能用Nx{1}或者Nx{1}(1)查看第一个单元的嵌套单元 显示[-1]
用Nx{1}{1}查看第一个单元的嵌套单元中的数据 -1
cell单元中的每个单元都是独立的,可以分别存储不同大小的矩阵或不同类型的数据。
这个特性很有用处
One is never too old to learn.