前面介绍了表和DataFrame中的列操作,与之对应的有行操作,接下来介绍行的增、删、改、查。行索引是与行查找有关的操作,包括单个行的索引、不连续多个行的索引和连续多个行的索引(即切片)。[大谦MATLAB,dqmatlab点com]
下面创建一个表T。
code.matlab
>> T=table({'张三';'李四';'杨二';'王五'},{'M';'F';'M';'F'},[18;19;17;25],...
[162;169;164;167],...
'VariableNames',{'Name' 'Gender' 'Age' 'Height'});
获取表T中的第1行。
code.matlab
>> T1=T(1,:)
T1 =
1×4 table
Name Gender Age Height
________ ______ ___ ______
{'张三'} {'M'} 18 162
注意此时返回的是一个1行4列的子表。
也可以用第1行的名称进行索引,先给表T添加索引列。
code.matlab
>> T.Properties.RowNames={'1';'2';'3';'4'}
T =
4×4 table
Name Gender Age Height
________ ______ ___ ______
1 {'张三'} {'M'} 18 162
2 {'李四'} {'F'} 19 169
3 {'杨二'} {'M'} 17 164
4 {'王五'} {'F'} 25 167
获取行名为“1”的行。
code.matlab
>> T2=T({'1'},:)
T2 =
1×4 table
Name Gender Age Height
________ ______ ___ ______
1 {'张三'} {'M'} 18 162
对给定表的不连续多行进行索引,用普通数组指定不连续多行的编号。
下面获取表T中的第1行、第3行和第5行。
code.matlab
>> T3=T([1 3],:)
T3 =
2×4 table
Name Gender Age Height
________ ______ ___ ______
1 {'张三'} {'M'} 18 162
3 {'杨二'} {'M'} 17 164
返回一个包含表T中第1行和第3行的子表。
也可以使用元胞数组,用不连续行的名称进行索引。下面用名称索引实现对表T中的第1行和第3行的索引。
code.matlab
>> T.Properties.RowNames={'1';'2';'3';'4'};
>> T4=T({'1','3'},:)
T4 =
2×4 table
Name Gender Age Height
________ ______ ___ ______
1 {'张三'} {'M'} 18 162
3 {'杨二'} {'M'} 17 164
对表中的连续多行进行索引,使用类似m:n的形式指定连续多行,其中m和n分别为起始行号和终止行号。
下面对表T中的第1-3行进行索引。小括号中的冒号表示取所有列。
code.matlab
>> T5=T(1:3,:)
T5 =
3×4 table
Name Gender Age Height
________ ______ ___ ______
1 {'张三'} {'M'} 18 162
2 {'李四'} {'F'} 19 169
3 {'杨二'} {'M'} 17 164
返回一个包含表T中第1-3行的子表。