splitvars
在表或时间表中拆分多列变量
说明
示例
使用工作区变量创建一个表。一些变量是具有多列的矩阵。
A = (1:3)'; B = [5 11 12; 20 30 50; 0.1 3.4 5.9]'; C = ["a" "XX";"b" "YY";"c" "ZZ"]; D = [128 256 512]'; T1 = table(A,B,C,D)
T1=3×4 table
A B C D
_ ________________ ___________ ___
1 5 20 0.1 "a" "XX" 128
2 11 30 3.4 "b" "YY" 256
3 12 50 5.9 "c" "ZZ" 512
拆分变量 B 和 C。输出表中的所有变量都只有一个列。
T2 = splitvars(T1)
T2=3×7 table
A B_1 B_2 B_3 C_1 C_2 D
_ ___ ___ ___ ___ ____ ___
1 5 20 0.1 "a" "XX" 128
2 11 30 3.4 "b" "YY" 256
3 12 50 5.9 "c" "ZZ" 512
使用 patients.mat 文件中数据的数组创建一个包含多个表的表。
load patients
Personal_Data = table(Age,Smoker);
BMI_Data = table(Height,Weight);
BloodPressure = table(Systolic,Diastolic);
LastName = string(LastName);
T1 = table(LastName,Personal_Data,BMI_Data,BloodPressure)T1=100×4 table
LastName Personal_Data BMI_Data BloodPressure
__________ _____________ ________________ _____________________
Age Smoker Height Weight Systolic Diastolic
___ ______ ______ ______ ________ _________
"Smith" 38 true 71 176 124 93
"Johnson" 43 false 69 163 109 77
"Williams" 38 false 64 131 125 83
"Jones" 40 false 67 133 117 75
"Brown" 49 false 64 119 122 80
"Davis" 46 false 68 142 121 70
"Miller" 33 true 64 142 130 88
"Wilson" 40 false 68 180 115 82
"Moore" 28 false 68 183 115 78
"Taylor" 31 false 66 132 118 86
"Anderson" 45 false 68 128 114 77
"Thomas" 42 false 66 137 115 68
"Jackson" 25 false 71 174 127 74
"White" 39 true 72 202 130 95
"Harris" 36 false 65 129 114 79
"Martin" 48 true 71 181 130 92
⋮
将 BloodPressure 指定为要拆分的变量。
T2 = splitvars(T1,"BloodPressure")T2=100×5 table
LastName Personal_Data BMI_Data Systolic Diastolic
__________ _____________ ________________ ________ _________
Age Smoker Height Weight
___ ______ ______ ______
"Smith" 38 true 71 176 124 93
"Johnson" 43 false 69 163 109 77
"Williams" 38 false 64 131 125 83
"Jones" 40 false 67 133 117 75
"Brown" 49 false 64 119 122 80
"Davis" 46 false 68 142 121 70
"Miller" 33 true 64 142 130 88
"Wilson" 40 false 68 180 115 82
"Moore" 28 false 68 183 115 78
"Taylor" 31 false 66 132 118 86
"Anderson" 45 false 68 128 114 77
"Thomas" 42 false 66 137 115 68
"Jackson" 25 false 71 174 127 74
"White" 39 true 72 202 130 95
"Harris" 36 false 65 129 114 79
"Martin" 48 true 71 181 130 92
⋮
要按名称指定多个变量,请使用字符串数组。
T3 = splitvars(T1,["BMI_Data" "BloodPressure"])
T3=100×6 table
LastName Personal_Data Height Weight Systolic Diastolic
__________ _____________ ______ ______ ________ _________
Age Smoker
___ ______
"Smith" 38 true 71 176 124 93
"Johnson" 43 false 69 163 109 77
"Williams" 38 false 64 131 125 83
"Jones" 40 false 67 133 117 75
"Brown" 49 false 64 119 122 80
"Davis" 46 false 68 142 121 70
"Miller" 33 true 64 142 130 88
"Wilson" 40 false 68 180 115 82
"Moore" 28 false 68 183 115 78
"Taylor" 31 false 66 132 118 86
"Anderson" 45 false 68 128 114 77
"Thomas" 42 false 66 137 115 68
"Jackson" 25 false 71 174 127 74
"White" 39 true 72 202 130 95
"Harris" 36 false 65 129 114 79
"Martin" 48 true 71 181 130 92
⋮
要按位置指定变量,请使用数值数组。
T4 = splitvars(T1,[2 4])
T4=100×6 table
LastName Age Smoker BMI_Data Systolic Diastolic
__________ ___ ______ ________________ ________ _________
Height Weight
______ ______
"Smith" 38 true 71 176 124 93
"Johnson" 43 false 69 163 109 77
"Williams" 38 false 64 131 125 83
"Jones" 40 false 67 133 117 75
"Brown" 49 false 64 119 122 80
"Davis" 46 false 68 142 121 70
"Miller" 33 true 64 142 130 88
"Wilson" 40 false 68 180 115 82
"Moore" 28 false 68 183 115 78
"Taylor" 31 false 66 132 118 86
"Anderson" 45 false 68 128 114 77
"Thomas" 42 false 66 137 115 68
"Jackson" 25 false 71 174 127 74
"White" 39 true 72 202 130 95
"Harris" 36 false 65 129 114 79
"Martin" 48 true 71 181 130 92
⋮
使用 patients.mat 文件中的数据创建一个包含多列变量的表。
load patients
Personal_Data = [Age,Height,Weight];
BloodPressure = [Systolic,Diastolic];
T1 = table(LastName,Smoker,Personal_Data,BloodPressure)T1=100×4 table
LastName Smoker Personal_Data BloodPressure
____________ ______ ________________ _____________
{'Smith' } true 38 71 176 124 93
{'Johnson' } false 43 69 163 109 77
{'Williams'} false 38 64 131 125 83
{'Jones' } false 40 67 133 117 75
{'Brown' } false 49 64 119 122 80
{'Davis' } false 46 68 142 121 70
{'Miller' } true 33 64 142 130 88
{'Wilson' } false 40 68 180 115 82
{'Moore' } false 28 68 183 115 78
{'Taylor' } false 31 66 132 118 86
{'Anderson'} false 45 68 128 114 77
{'Thomas' } false 42 66 137 115 68
{'Jackson' } false 25 71 174 127 74
{'White' } true 39 72 202 130 95
{'Harris' } false 36 65 129 114 79
{'Martin' } true 48 71 181 130 92
⋮
拆分 BloodPressure 并为输出表中的新变量指定新名称。
T2 = splitvars(T1,"BloodPressure",NewVariableNames=["Systolic" "Diastolic"])
T2=100×5 table
LastName Smoker Personal_Data Systolic Diastolic
____________ ______ ________________ ________ _________
{'Smith' } true 38 71 176 124 93
{'Johnson' } false 43 69 163 109 77
{'Williams'} false 38 64 131 125 83
{'Jones' } false 40 67 133 117 75
{'Brown' } false 49 64 119 122 80
{'Davis' } false 46 68 142 121 70
{'Miller' } true 33 64 142 130 88
{'Wilson' } false 40 68 180 115 82
{'Moore' } false 28 68 183 115 78
{'Taylor' } false 31 66 132 118 86
{'Anderson'} false 45 68 128 114 77
{'Thomas' } false 42 66 137 115 68
{'Jackson' } false 25 71 174 127 74
{'White' } true 39 72 202 130 95
{'Harris' } false 36 65 129 114 79
{'Martin' } true 48 71 181 130 92
⋮
拆分 BMI_Data 和 BloodPressure。对于要拆分的每个变量,您必须提供一个具有正确数量的新名称的元胞数组。
T3 = splitvars(T1,["Personal_Data" "BloodPressure"], ... NewVariableNames={["Age" "Height" "Weight"] ["Systolic" "Diastolic"]})
T3=100×7 table
LastName Smoker Age Height Weight Systolic Diastolic
____________ ______ ___ ______ ______ ________ _________
{'Smith' } true 38 71 176 124 93
{'Johnson' } false 43 69 163 109 77
{'Williams'} false 38 64 131 125 83
{'Jones' } false 40 67 133 117 75
{'Brown' } false 49 64 119 122 80
{'Davis' } false 46 68 142 121 70
{'Miller' } true 33 64 142 130 88
{'Wilson' } false 40 68 180 115 82
{'Moore' } false 28 68 183 115 78
{'Taylor' } false 31 66 132 118 86
{'Anderson'} false 45 68 128 114 77
{'Thomas' } false 42 66 137 115 68
{'Jackson' } false 25 71 174 127 74
{'White' } true 39 72 202 130 95
{'Harris' } false 36 65 129 114 79
{'Martin' } true 48 71 181 130 92
⋮
输入参数
输出参量
具有拆分变量的输出表,以表或时间表形式返回。
扩展功能
splitvars 函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
用法说明和限制:
vars输入参量不支持模式表达式。NewVariableNames名称-值参量的值必须为常量。拆分的变量不能有可变的列数。
请参阅“C/C++ 代码生成”部分中的用法说明和限制。同样的用法说明和限制也适用于 GPU 代码生成。
splitvars 函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
版本历史记录
在 R2018a 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)
