文档

cell2struct

将单元格阵列转换为结构阵列

语法

structArray= cell2struct (cellArray,字段,昏暗的)

描述

structArray= cell2struct (cellArray,字段,昏暗的)创建一个结构数组,structArray,从单元格数组中包含的信息cellArray

字段参数指定结构数组的字段名称。此参数是字符数组或字符向量的单元格数组。

昏暗的论点告诉MATLAB®在创建结构数组时使用单元格数组的哪个轴。使用一个数字指定昏暗的

使用派生的字段创建结构数组N单元格数组的行,指定N的字段名称字段参数中的数字1昏暗的论点。使用派生的字段创建结构数组单元格数组的列,指定的字段名称字段参数中的数字2昏暗的论点。

structArray输出是一个结构数组N字段,N的字段数等于字段输入参数。结果结构中的字段数必须等于维度上的单元格数昏暗的你想要转换的。

例子

创建下表,用于本节中的示例。该表列出了一家小型工程公司员工的信息。按行读取表显示按部门读取的员工名称。按列读取表显示了每个员工在公司工作的年数。

5年 10年 15年
发展 李、苇、山 迪安,弗莱 车道,福克斯,王
销售 豪,伯恩斯 科比,福特 大厅
管理 价格 克拉克,谢伊 西姆斯
质量 贝茨,灰色 纳什 凯,追逐
文档 劳埃德,年轻 莱恩哈特,罗伊 沼泽

输入以下命令来创建初始单元格数组员工:

猛击={{“李”,“芦苇”,“山”},{‘院长’,‘Frye},…{‘道’,‘狐狸’,‘国王’}};销售={{“豪”、“烧伤”},{“科比”,“福特”},{“大厅”}};mgmt = {{'Price'}, {'Clark','Shea'}, {'Sims'};质量={{“贝茨”,“灰色”},{“纳什”},{“凯”、“追逐”}};docu ={{‘Lloyd’,‘年轻’},{“瑞恩”,“哈特”,“罗伊”},{“沼泽”}};员工=[重击;销售;管理;定性; docu] employees = {1x3 cell} {1x2 cell} {1x3 cell} {1x2 cell} {1x2 cell} {1x1 cell} {1x1 cell} {1x2 cell} {1x1 cell} {1x2 cell} {1x1 cell} {1x2 cell} {1x2 cell} {1x3 cell} {1x1 cell}

这是得到的单元格数组:

将单元格数组转换为沿着维度1的结构:

  1. 沿着第一个维度转换5×3的单元格数组,以构造一个3×1的、有5个字段的结构数组。单元格数组中维度1的每一行都成为结构数组中的一个字段:

    遍历第一个(即,vertical) dimension, there are 5 rows with row headings that read as follows:

    {“开发”,“销售”,“管理”,…“质量”、“文档'};
  2. 将单元格数组转换为结构数组,部门,在这方面:

    depts = cell2struct(员工,rowHeadings, 1) depts = 3x1结构数组,字段:开发销售管理质量文档
  3. 使用这个面向行结构来查找在公司工作了10年以上的开发人员的名字:

    (1:2).development ans = 'Lee' ' 'Reed' 'Hill' ans = 'Dean' 'Frye'

将相同的单元数组转换为沿着维度2的结构:

  1. 沿着第二个维度转换5×3的单元格数组,以构造一个5×1的结构数组,其中有3个字段。单元格数组第2维上的每一列都成为结构数组中的一个字段:

  2. 沿着第二个维度(或水平维度)遍历单元格数组。列标题成为结果结构的字段:

    {'fiveYears' 'tenYears' 'fifteenYears'};年= cell2struct(雇员,合并标题,2)年= 5x1结构数组字段:5年10年15年
  3. 使用面向列的结构,显示销售和文档部门有多少员工为公司工作了至少5年:

    5 .年的英文:5年= 'Howe' ' 'Burns' docu_5years = 'Lloyd' 'Young'

仅将单元格数组的一部分转换为结构体:

  1. 仅转换单元格数组的第一行和最后一行。结果是一个3乘1的结构数组,有2个字段:

    rowHeadings = {'development', 'documentation'};depts = cell2struct(employees([1,5],:), rowHeadings, 1) depts = 3x1结构数组,字段:开发文档

  2. 显示在这三个时间段内属于这些部门的员工:

    for k=1:3 depts(k,:) end ans = development: {'Lee' ' 'Reed' 'Hill'} documentation: {'Lloyd' 'Young'} ans = development: {'Dean' 'Frye'} documentation: {'Ryan' 'Hart' 'Roy'} ans = development: {'Lane' 'Fox' 'King'} documentation: {'Marsh'}

之前介绍过的R2006a

这个话题有用吗?