MATLAB中cell函数
2015-09-07 21:53
477 查看
转自:http://blog.sina.com.cn/s/blog_5efed5800100exmj.html
如果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
如果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
相关文章推荐
- MATLAB的fix(),floor()和ceil()函数的区别与联系
- matlab ()的用法
- 机器学习:林智仁libsvm 工具箱 在matlab下的应用总结
- MATLAB中的sort函数
- MATLAB中的eig函数
- MATLAB中的mean函数
- MATLAB中的diag函数
- 最小生成树--matlab实现
- Windows下编译Caffe并编译Matlab接口
- matlab高手博客记录
- matlab函数——shading函数
- matlab知识点汇集
- 在MATLAB中调用封装好的C++函数的方法
- K-means聚类分析MATLAB代码
- K-means聚类分析MATLAB代码
- matlab函数——meshgrid、mesh、surf函数
- MATLAB 函数
- matlab库冲突问题
- matlab保存figure
- Java 调用 matlab 程序