MATLAB中cell(元胞)数组的基本用法

说明

元胞数组是一种包含名为元胞的索引数据容器的数据类型,其中的每个元胞都可以包含任意类型的数据。元胞数组通常包含文本列表、文本和数字的组合或者不同大小的数值数组。

创建对象

1、我们可以使用元胞数组构造运算符 {} 创建该数组,例如:

% 使用元胞数组构造运算符{}创建数组
C = {1,2,3;
     'text',rand(5,10,2),{11; 22; 33}}
C = 2x3 cell array
    {[   1]}    {[          2]}    {[     3]}
    {'text'}    {5x10x2 double}    {3x1 cell}

2、还可以使用cell 预分配一个元胞数组,稍后再为其分配数据,例如:

% 使用cell函数预分配一个数组
C =cell(3);
C = 3x3 cell array
    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}
    {0x0 double}    {0x0 double}    {0x0 double}

其中,cell函数不仅可以预分配一个元胞数组,还可以可将 Java 数组、.NET System.String 或 System.Object 数组或者 Python 序列转换为 MATLAB 元胞数组。

元胞数组的访问

我们所创建的元胞数组是一系列元胞数据类型的集合,我们通过将索引括在圆括号 () 中可以引用元胞集,使用花括号 {} 进行索引来访问元胞的内容,例如:

C = {'2017-08-16',[56 67 78]};
C(1,:)
ans = 1x2 cell array
    {'2017-08-16'}    {1x3 double}
C{1,2}
ans = 1×3

    56    67    78

相关函数

cell2mat :将元胞数组转换成普通的数组
cell2table :将元胞数组转换成table类型
cell2struct:将元胞数组转换成结构体数组
cellstr:将元胞数组转换成字符向量
iscell:判断输入是否是元胞数组

更多内容详见:https://www.mathworks.com/help/matlab/cell-arrays.html.

重点函数 c e l l f u n cellfun cellfun

用法
cellfun:将函数作用于数组中的每一个元胞
 A = cellfun(func,C),将函数func作用到C中的每一个元胞中,
     一次作用于一个元胞,相当于A(i) = func(C{i})。
示例
C = {1:10, [2; 4; 6], []};
%计算每个元胞的均值
A = cellfun(@mean,C)
A = 1×3

    5.5000    4.0000       NaN
%删除空的元胞数组
A(cellfun(@isempty,A))=[]
A=1×2 cell
    {1x10 double}    {3x1 double} 

更多示例详见:https://www.mathworks.com/help/matlab/ref/cellfun.html.

  • 26
    点赞
  • 133
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值