版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、最近用matlab的gui编程,从excel读取之后自动存为元胞数组cell格式,因为涉及到数字和文本,所以需要将元胞数组进行转化。在调用的时候也需要注意格式,现在对cell这种数据格式进行以下总结。部分内容是转来的。元胞数组: 元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。&
2、#160; (1)元胞数组的创建 >> a='matlab',20;ones(2,3),1:10
3、; %创建方法一a = 'matlab' 20 2x3 double 1x10 double>> b='matlab',20;ones(2,3),1:10
4、160; %创建方法二b = 'matlab' 20
5、160; 2x3 double 1x10 double>> c=10
6、160; %赋值方法一c = 10>> c(1,2)=2
7、60;
8、60; %赋值方法二
9、60; c = 10 2>>
10、; c(2,2)=5
11、160; c = 10 2 5>> isequal(a,b)
12、
13、 %判断是否相同ans = 1>> whosName Size Bytes Class Attributesa
14、; 2x2 388 cell ans 1x1
15、60; 1 logical b 2x2 388 cell
16、60; c 2x2 208 cell 用cell函数创建元胞数组,创建的数组为空元胞。cell函数创建空元胞数组的主要目的是为数组预先分配连续的存储空间,节约内
17、存占用,提高执行效率。 >> a=cell(1)a = >> b=cell(1,2)b = >> c=cell(3,3)c =
18、0; >> d=cell(2,2,2)d(:,:,1) = d(:,:,2) =
19、 >> whosName Size Bytes Class Attributesa 1x1
20、160; 4 cell ans 1x1
21、 1 logical b 1x2 8 cell
22、160; c 3x3 36 cell d
23、 2x2x2 32 cell (2)元胞数组的数据获得 从元胞数组中读取数据,可保存为一个标准的数组或一个新的单元数组,或取出数组进行计算。元胞数组中数据的访问,可通过元胞内容的下标进行,用元胞数组名加大括号。大括号中数值表示元胞的下标。如a1,2表示元胞数组中第一行第二列的元胞。>>
24、a=20,'matlab'ones(2,3),1:3a = 20 'matlab' 2x3 double 1x3 double>> str=a(1,2)str = 'matlab'>> class(str)ans =cell>>
25、; str=a1,2str =matlab>> class(str)ans =char()和有着本质的区别,大括号用于表示元胞的内容,小括号表示指定的元胞。a = 20 'matlab' 2x3 double 1x3 double>> a2,1(2,2)ans = 0.
26、9134>> a2,1(2,3)ans = 0.0975>> a1,2(2)ans =a使用元胞的下标,可将一个元胞数组的子集赋值给另一个变量,创建新的元胞数组。>> a=1,2,3;4,5,6;7,8,9a = 1 2 3 4 5 6 7
27、 8 9>> b=a(2:3,2:3)b = 5 6 8 9>> c=a(1:3,2:3)c = 2 3 5 6 8 9 本例使用元
28、胞下标的方式创建了新的元胞数组b和c,通过结果看出b和c就是元胞数组a的一部分。 (3)元胞数组的删除和重塑 要删除单元数组中的行或列,可以用冒号表示单元数组中的行或列,然后对其赋一个空矩阵即可。 a=20,'matlab'ones(2,3),1:3a = 20 'matlab'
29、 2x3 double 1x3 double>> a(1,:)=a = 2x3 double 1x3 double>> a=20,'matlab'ones(2,3),1:3;>> a1=a =
30、39;matlab' 2x3 double 1x3 double>> a(1)=a = 2x3 double 'matlab' 1x3 double>> a(2)=a = 2x3 double 1x3 double>> a(1,2)=? A null assign
31、ment can have only one non-colon index.>> a(1)=a = 1x3 double 元宝数组和其他数组一样,也可以通过reshape函数改变形状,改变后的元胞数组与原元胞数组的元素个数相同,不能通过改变形状来添加或删除元胞数组中的元素。 >> a=cell(4,4)a =
32、0;
33、0; >> size(a)ans = 4 4>> b=reshape(a,2,8)b =
34、60; >> size(b)ans = 2 8
35、; (5)元胞数组中的操作函数 cell:创建空的元胞数组 cellfun:为元胞数组的每个元胞执行指定的函数 celldisp:显示所有元胞的内容 cellplot:利用图形方式显示元胞数组 cell2m
36、at:将元胞数组转变成为普通的矩阵 mat2cell:将数值矩阵转变成为元胞数组 num2cell:将数值数组转变成为元胞数组 deal:将输入参数赋值给输出 cell2struct:将元胞数组转变成为结构 struct2cell:将结构转变为元胞数组
37、 iscell:判断输入是否为元胞数组 >> a=20,'matlab',3-7i;ones(2,3),1:3,0a = 20 'matlab' 3.0000 - 7.0000i 2x3 doub
38、le 1x3 double 0>> b=cellfun('isreal',a)b = 1 1 0 1 &
39、#160; 1 1>> c=cellfun('length',a)c = 1 6 1 3 3 1>> d=cellfun('isclass',a,'double')d =
40、; 1 0 1 1 1 1(函数的应用) cellfun函数的主要功能是对元胞数组的元素(元胞)分别指定不同的函数,不过,能够在cellfun函数中使用的函数ushuliang是有限的。 能在cellfun中使用的函数: isempty:若元胞元素为空,则返回逻辑真 islogical:若元胞元素为逻辑类型,则返回逻辑真 isreal:若元胞元素为实数,则返回逻辑真 length:元胞元素的长度&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年员工合同模板
- 2025年宜居城市旅行合同
- 2025年度餐饮服务业个人劳务派遣管理合同样本
- 2025年江西省第十一建设有限公司招聘笔试参考题库含答案解析
- 2025年度个人健身教练服务合同范本5篇
- 2025年浙教版九年级地理上册月考试卷含答案
- 2025年浙江嘉兴海宁市城市发展投资集团有限公司招聘笔试参考题库附带答案详解
- 2025年沪教版高一语文下册月考试卷含答案
- 卫生防疫知识普及
- 2025年外研版三年级起点八年级历史下册阶段测试试卷含答案
- 环境监测对环境保护的意义
- 2023年数学竞赛AMC8试卷(含答案)
- 神经外科课件:神经外科急重症
- 2024年低压电工证理论考试题库及答案
- 2023年十天突破公务员面试
- 《疯狂动物城》中英文对照(全本台词)
- 医院住院医师规范化培训证明(样本)
- 小学六年级语文阅读理解100篇(及答案)
- 气功修炼十奥妙
- 安徽省物业服务标准
- 勾股定理的历史与证明课件
评论
0/150
提交评论