Matlab中的cell、size函数

参考网址:http://blog.sina.com.cn/s/blog_5efed5800100exmj.html

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单元时要用{},再引用矩阵的某个数据就要用()了。

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

size函数

size(X,1),返回矩阵X的行数;

size(X,2),返回矩阵X的列数;

N=size(X,2),就是把矩阵X的列数赋值给N