打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
matlab中cell数组用法

第一次接触cell数据是因为做一个数据处理时由于数据量太大excel的vlookup奔溃而数据库不熟练只能硬着头皮强行导入matlab匹配,其中有一列数据为年月日时分秒,还好matlab有cell数组,中间使用也遇到一些问题,现在总结一下用法方便以后复习和可能会用到的朋友。

cell数组一般被叫做元胞数组,它的每个单元可以储存不同的数据类型,可以是数值,字符或矩阵或元胞数组等,类似于学过的c语言里的结构体

1.cell数组的创建

可以直接通过{}类似于矩阵的直接赋值:a={'winter',123,'coming','哈哈'};

也可以通过cell函数预分配内存,再赋值:a=cell(1,4);a={'winter',123,'coming','哈哈'};

2.cell数组的访问

与普通矩阵,数组的主要区别在于:通过()访问cell数组时访问到的是cell单元,通过{}访问cell数组时访问到的是cell单元储存的内容,举例如下图所示,其他操作基本一样。

3.cell数组相关的函数

cell:创建空的元胞数组,预分配内存

celldisp:显示元胞数组所有内容

cellplot:利用图形方式显示内容(因缺思厅!)

cell2mat:将元胞数组成普通矩阵(要求cell元胞数组的所有内容都必须为相同数据类型,可以为字符,会转化为字符矩阵)

mat2cell:将普通矩阵转化成元胞数组

iscell:判断输入是否为元胞数组

cellfun:为cell数组的每个cell单元执行指定的函数,fun可以是特殊的函数或者句柄

b={[1,2,1];[2,1,1];[1,1,2]};c=cellfun(@(x)(mat2str(x)),b,'un',0)

 

 

更一般的例子参见https://cn.mathworks.com/matlabcentral/answers/99632-how-do-i-save-a-cell-array-that-contains-both-strings-and-numbers-to-an-ascii-file-in-matlab

4.cell单元的删除

我们知道矩阵及矩阵的删除可以通过[]实现:

元胞数组操作类似但和其赋值一样有区别,区别就在于{}和()

a={1,2,3};

a{1}=[];%并不能删除第一个cell单元,只是变成空值

a(1)=[];%删除第一个单元

a(:)=[];%一次性删除所有cell单元

 


觉得有帮助的小伙伴,帮博主微信扫下推广下小程序好嘛,Thanks♪(・ω・)ノ

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
matlab中(),[],与{}的区别认识
Matlab中(),[],与{}的区别
MATLAB中三种数组之间的转换
Matlab数据&数组类型详解(4)元胞数组
MATLAB的数值计算
Matlab的zeros函数和ones函数
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服