matlab学习-元胞数组_第1页
matlab学习-元胞数组_第2页
matlab学习-元胞数组_第3页
matlab学习-元胞数组_第4页
matlab学习-元胞数组_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论