Main Content

cell2table

将元胞数组转换为表

说明

T = cell2table(C)m×n 元胞数组 C 的内容转换为 m×nTC 的每一列提供 T 的一个变量中包含的数据。

要在输出表中创建变量名称,cell2table 需要将列号追加到输入数组名称后面。如果输入数组没有名称,cell2table 将创建 "Var1",...,"VarN" 形式的变量名称,其中 NC 中的列数。

示例

T = cell2table(C,Name,Value) 通过由一个或多个 Name,Value 对组参数指定的其他选项基于元胞数组 C 创建表。

例如,您可以指定要包含在表中的行名称或变量名称。

示例

全部折叠

创建一个包含字符串和数值数据的元胞数组。(不推荐使用字符串元胞数组。但在本例中,在既包含字符串又包含数值的元胞数组中包含字符串是合适的。此元胞数组不是文本的容器,而是组合在一起的值的容器,尽管这些值具有不同数据类型。)

C = {5 "cereal" 110 "C+"; 12 "pizza" 140 "B";...
    23 "salmon" 367 "A"; 2 "cookies" 160 "D"}
C=4×4 cell array
    {[ 5]}    {["cereal" ]}    {[110]}    {["C+"]}
    {[12]}    {["pizza"  ]}    {[140]}    {["B" ]}
    {[23]}    {["salmon" ]}    {[367]}    {["A" ]}
    {[ 2]}    {["cookies"]}    {[160]}    {["D" ]}

将元胞数组 C 转换为表并指定变量名称。

T = cell2table(C,...
    "VariableNames",["Age" "FavoriteFood" "Calories" "NutritionGrade"])
T=4×4 table
    Age    FavoriteFood    Calories    NutritionGrade
    ___    ____________    ________    ______________

     5      "cereal"         110            "C+"     
    12      "pizza"          140            "B"      
    23      "salmon"         367            "A"      
     2      "cookies"        160            "D"      

变量 T.AgeT.Calories 是数值,而变量 T.FavoriteFoodT.NutritionGrade 是字符串数组。

将元胞数组转换为表,然后包括元胞数组的第一行作为表的变量名称。

创建一个元胞数组,其中第一行包含用于标识列标题的字符串。(不推荐使用字符串元胞数组。但在本例中,在包含字符串、数值和逻辑值的元胞数组中包含字符串是合适的。此元胞数组不是文本的容器,而是组合在一起的值的容器,尽管这些值具有不同数据类型。)

Patients = {"LastName" "Age" "Height" "Weight" "Smoker";...
    "Chang" 38 71 176 true;...
    "Brown" 43 69 163 false;...
    "Ruiz" 38 64 131 false;...
    "Lee" 38 64 131 false;...
    "Smith" 40 67 133 false;...
    "Garcia" 49 64 119 false}
Patients=7×5 cell array
    {["LastName"]}    {["Age"]}    {["Height"]}    {["Weight"]}    {["Smoker"]}
    {["Chang"   ]}    {[   38]}    {[      71]}    {[     176]}    {[       1]}
    {["Brown"   ]}    {[   43]}    {[      69]}    {[     163]}    {[       0]}
    {["Ruiz"    ]}    {[   38]}    {[      64]}    {[     131]}    {[       0]}
    {["Lee"     ]}    {[   38]}    {[      64]}    {[     131]}    {[       0]}
    {["Smith"   ]}    {[   40]}    {[      67]}    {[     133]}    {[       0]}
    {["Garcia"  ]}    {[   49]}    {[      64]}    {[     119]}    {[       0]}

排除列标题并将元胞数组的内容转换为表。

C = Patients(2:end,:);
T = cell2table(C)
T=6×5 table
       C1       C2    C3    C4      C5  
    ________    __    __    ___    _____

    "Chang"     38    71    176    true 
    "Brown"     43    69    163    false
    "Ruiz"      38    64    131    false
    "Lee"       38    64    131    false
    "Smith"     40    67    133    false
    "Garcia"    49    64    119    false

T 具有变量名称 C1,...,C5

通过将表属性 T.Properties.VariableNames 设置为包含来自元胞数组的第一行的名称来更改变量名称。要从第一行中提取姓氏,请使用花括号。然后将这些姓氏串联成字符串数组。将字符串数组赋给 T.Properties.VariableNames

LastName = [Patients{1,:}]
LastName = 1x5 string
    "LastName"    "Age"    "Height"    "Weight"    "Smoker"

T.Properties.VariableNames = LastName
T=6×5 table
    LastName    Age    Height    Weight    Smoker
    ________    ___    ______    ______    ______

    "Chang"     38       71       176      true  
    "Brown"     43       69       163      false 
    "Ruiz"      38       64       131      false 
    "Lee"       38       64       131      false 
    "Smith"     40       67       133      false 
    "Garcia"    49       64       119      false 

输入参数

全部折叠

输入元胞数组,指定为二维元胞数组。C 的每一列为一个表变量提供数据。

  • 如果 C 的一列中各单元格的内容具有兼容的大小和类型,则对应的表变量是由这些内容垂直串联而形成的数组。

  • 如果一列中各单元格的内容具有不同的大小和类型,则对应的表变量是元胞数组。

    • 如果一列中各单元格的内容都是字符向量,则对应的表变量是字符向量元胞数组。

名称-值参数

将可选的参数对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参数名称,Value 是对应的值。名称-值参数必须出现在其他参数之后,但参数对组的顺序无关紧要。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。

示例: "RowNames",["row1","row2","row3"] 将行名称 row1row2row3 用于表 T

行名称,指定为以逗号分隔的对组,其中包含 "RowNames" 和一个字符串数组或由非空的不同元素构成的字符向量元胞数组。名称的数量必须等于行数 size(C,1)

行名称可以包含任何 Unicode® 字符,包括空格和非 ASCII 字符。

如果您指定的行名称包含前导或尾部空白字符,则 cell2table 会将它们从行名称中删除。

变量名称,指定为以逗号分隔的对组,其中包含 "VariableNames" 和一个字符串数组或由非空的不同元素构成的字符向量元胞数组。名称的数量必须等于变量数 size(C,2)

变量名称可以包含任何 Unicode 字符,包括空格和非 ASCII 字符。

自 R2021a 开始提供

维度名称,指定为二元素字符向量元胞数组或二元素字符串数组,其元素为非空且不同。

维度名称可以包含任何 Unicode 字符,包括空格和非 ASCII 字符。

在 R2021a 之前,只能通过设置输出的 DimensionNames 属性来指定维度名称。

输出参数

全部折叠

输出表,以表形式返回。该表可以存储元数据,例如描述、变量单位、变量名称和行名称。有关详细信息,请参阅 table 的“属性”部分。

扩展功能

版本历史记录

在 R2013b 中推出

全部展开