列操作是数据整理中最常见的操作,包括列的增、删、改、查等操作。列索引指的是列的查找。可以有单个列的索引、多个不连续列的索引和多个连续列的索引(即切片)。[大谦MATLAB,dqmatlab点com]
首先介绍单个列的索引。
下面首先创建一个表T。
code.matlab
>> ID={'1';'2';'3';'4'};
>> Name={'张三';'李四';'杨二';'王五'};
>> Age=[18;19;17;21];
>> Height=[162;169;164;167];
>> Weight=[116;103;131;133];
>> T=table(Name,Age,Height,Weight, 'RowNames',ID);
用小括号获取表T中的第1列。注意小括号中有两个参数,第1个参数取冒号,表示包括所有行;第2个参数取1,表示第1列。
code.matlab
>> T1=T(:,1)
T1 =
4×1 table
Name
________
1 {'张三'}
2 {'李四'}
3 {'杨二'}
4 {'王五'}
返回的是一个4行1列的子表。
也可以用第1列的名称进行索引,即
code.matlab
>> T2=T(:,'Name')
返回与上面相同的结果。
下面获取表T中的第2列和第4列,把列号2和4放在一个数组中作为小括号中的第2个参数。
code.matlab
>> T3= T(:,[2 4])
T3 =
4×2 table
Age Weight
___ ______
1 18 116
2 19 103
3 17 131
4 21 133
返回一个包含表T中第2列和第4列的子表。
也可以使用元胞数组,用不连续列的名称进行索引。下面用名称索引实现对表T中的第2列和第4列的索引。
code.matlab
>> T4=T(:,{'Age','Weight'})
返回与T3相同的子表。
对表中的连续多列进行索引,使用类似m:n的形式指定连续多列,其中m和n分别为起始列号和终止列号。
下面对表T中的第1-3列进行索引。起始列号为1,终止列号为3,1和3之间用冒号连接。
code.matlab
>> T5= T(:,1:3)
T5 =
4×3 table
Name Age Height
________ ___ ______
1 {'张三'} 18 162
2 {'李四'} 19 169
3 {'杨二'} 17 164
4 {'王五'} 21 167
返回一个包含表T中第1-3列的子表。