matlab——cell(以及和struct的转换)

来源:互联网 发布:网络作者亘古传奇 编辑:程序博客网 时间:2024/06/06 04:29

元胞数组    

它与数组的区别是:每个元素可以是不同类型的,可是不同大小的矩阵,也可以是字符串,结构体等 使用元胞数组要区分(),{}的区别。     

 1)创建元胞数组

[cpp] view plain copy
 print?
  1. >> c(1,1)={[1,2;3 4]};  
  2. >> c(1,2)={'tom is a sb'};  
  3. >> c(2,1)={[1,2,3,4,5,6]};  
  4. >> c(2,2)={struct('name','rose','age',21)};  
  5. >> c  
  6. c =   
  7.     [2x2 double]    'tom is a sb'  
  8.     [1x6 double]     [1x1 struct]  
2)调取元胞数组的元素
{ }:可以返回一个元胞中的具体数据; () :返回该位置的数组类型信息
  1. >> c(1,1)  
  2. ans =   
  3.     [2x2 double]  
  4. >> c{1,1}  
  5. ans =  
  6.      1     2  
  7.      3     4  
  8. >>   


[cpp] view plain copy
 print?
  1. >> B(3,3)={'hello'};  
  2. >> B  
  3. B =   
  4.      []     []         []  
  5.      []     []         []  
  6.      []     []    'hello'  
  7. >>   

创建一个3*3的元胞数组,并组在(3,3)位置的赋值

   3)几个函数       

 celldisp(c);     %显示   

.用函数celldisp()显示单元内容

  1. celldisp(c):该函数显示单元数组c每个单元的内容

    MATLAB如何显示单元数组型变量的内容






  2. celldisp(c,'name'):该函数采用名称name来显示单元型变量c每个单元的内容

    MATLAB如何显示单元数组型变量的内容步骤阅读


    












 cell2struct();        num2cell();        iscell(); 

将cell数组转换为struct数组

n=3;%% 初始化一个cell数组c_info=cell(n,1);id=[12 3 8];name={'x','l','h'};age=[20 22 24];for i=1:n;    c_info{i}.id=id(i);    c_info{i}.name=name{i};    c_info{i}.age=age(i);end%% 转化代码cs_info=[c_info{:}];


总结:1)struct和cell看起来是像相似的,其实可以这样理解struct只能过构造1*n个元素,

        而cell就是个变态版的数  组            

          2)他们真的没什么联系~~~ 


struct和cell之间的转换



原创粉丝点击