列索引

列操作是数据整理中最常见的操作,包括列的增、删、改、查等操作。列索引指的是列的查找。可以有单个列的索引、多个不连续列的索引和多个连续列的索引(即切片)。[大谦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列的子表。