cell2table
将元胞数组转换为表
说明
示例
将元胞数组转换为表
创建一个包含字符串和数值数据的元胞数组。(不推荐使用字符串元胞数组。但在本例中,在既包含字符串又包含数值的元胞数组中包含字符串是合适的。此元胞数组不是文本的容器,而是组合在一起的值的容器,尽管这些值具有不同数据类型。)
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.Age
和 T.Calories
是数值,而变量 T.FavoriteFood
和 T.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
的每一列为一个表变量提供数据。
如果
C
的一列中各单元格的内容具有兼容的大小和类型,则对应的表变量是由这些内容垂直串联而形成的数组。如果一列中各单元格的内容具有不同的大小和类型,则对应的表变量是元胞数组。
如果一列中各单元格的内容都是字符向量,则对应的表变量是字符向量元胞数组。
名称-值参数
将可选的参量对组指定为 Name1=Value1,...,NameN=ValueN
,其中 Name
是参量名称,Value
是对应的值。名称-值参量必须出现在其他参量之后,但参量对组的顺序无关紧要。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name
引起来。
示例: "RowNames",["row1","row2","row3"]
将行名称 row1
、row2
和 row3
用于表 T
。
RowNames
— 行名称
{}
(默认) | 字符串数组 | 字符向量元胞数组
行名称,指定为以逗号分隔的对组,其中包含 "RowNames"
和一个字符串数组或由非空的不同元素构成的字符向量元胞数组。名称的数量必须等于行数 size(C,1)
。
行名称可以包含任何 Unicode® 字符,包括空格和非 ASCII 字符。
如果您指定的行名称包含前导或尾部空白字符,则 cell2table
会将它们从行名称中删除。
VariableNames
— 变量名称
字符串数组 | 字符向量元胞数组
变量名称,指定为以逗号分隔的对组,其中包含 "VariableNames"
和一个字符串数组或由非空的不同元素构成的字符向量元胞数组。名称的数量必须等于变量数 size(C,2)
。
变量名称可以包含任何 Unicode 字符,包括空格和非 ASCII 字符。
DimensionNames
— 维度名称
二元素字符向量元胞数组 | 二元素字符串数组
自 R2021a 开始提供
维度名称,指定为二元素字符向量元胞数组或二元素字符串数组,其元素为非空且不同。
维度名称可以包含任何 Unicode 字符,包括空格和非 ASCII 字符。
在 R2021a 之前,只能通过设置输出的 DimensionNames
属性来指定维度名称。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
在生成的代码中,您在使用此函数时必须指定
'VariableNames'
名称-值对组参量。有关详细信息,请参阅 表的代码生成 (MATLAB Coder) 和 Table Limitations for Code Generation (MATLAB Coder)。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
版本历史记录
在 R2013b 中推出MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)