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(Gender,Age);
BMI_Data = table(Height,Weight);
BloodPressure = table(Systolic,Diastolic);
T1 = table(LastName,Personal_Data,BMI_Data,BloodPressure);
head(T1,3) LastName Personal_Data BMI_Data BloodPressure
____________ _________________ ________________ _____________________
Gender Age Height Weight Systolic Diastolic
__________ ___ ______ ______ ________ _________
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
将 BloodPressure 指定为要拆分的变量。
T2 = splitvars(T1,'BloodPressure');
head(T2,3) LastName Personal_Data BMI_Data Systolic Diastolic
____________ _________________ ________________ ________ _________
Gender Age Height Weight
__________ ___ ______ ______
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
要按名称指定多个变量,请使用字符向量元胞数组。
T3 = splitvars(T1,{'BMI_Data','BloodPressure'});
head(T3,3) LastName Personal_Data Height Weight Systolic Diastolic
____________ _________________ ______ ______ ________ _________
Gender Age
__________ ___
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
要按位置指定变量,请使用数值数组。
T4 = splitvars(T1,[2 4]); head(T4,3)
LastName Gender Age BMI_Data Systolic Diastolic
____________ __________ ___ ________________ ________ _________
Height Weight
______ ______
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
使用 patients.mat 文件中的数据创建一个包含多列变量的表。显示前三行。
load patients
Personal_Data = [Age,Height,Weight];
BloodPressure = [Systolic,Diastolic];
T1 = table(LastName,Gender,Personal_Data,BloodPressure);
head(T1,3) LastName Gender Personal_Data BloodPressure
____________ __________ ________________ _____________
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
拆分 BloodPressure 并为输出表中的新变量指定新名称。
T2 = splitvars(T1,'BloodPressure','NewVariableNames',{'Systolic','Diastolic'}); head(T2,3)
LastName Gender Personal_Data Systolic Diastolic
____________ __________ ________________ ________ _________
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
拆分 BMI_Data 和 BloodPressure。对于要拆分的每个变量,您必须提供一个具有正确数量的新名称的元胞数组。
T3 = splitvars(T1,{'Personal_Data','BloodPressure'},...
'NewVariableNames',{{'Age','Height','Weight'},{'Systolic','Diastolic'}});
head(T3,3) LastName Gender Age Height Weight Systolic Diastolic
____________ __________ ___ ______ ______ ________ _________
{'Smith' } {'Male' } 38 71 176 124 93
{'Johnson' } {'Male' } 43 69 163 109 77
{'Williams'} {'Female'} 38 64 131 125 83
输入参数
扩展功能
splitvars 函数完全支持 tall 数组。有关详细信息,请参阅 tall 数组。
用法说明和限制:
vars输入参量不支持模式表达式。'NewVariableNames'名称-值参量的值必须为常量。拆分的变量不能有可变的列数。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 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)
