如何为表格添加主行和主列?

时间:2018-07-22 07:24:07

标签: matlab

我的桌子:

'L1'    'B'
'L2'    'B'
'L3'    'A'
'L4'    'C'
'L5'    'B'
'L6'    'C'
'L7'    'C'
'L8'    'A'

我希望我的桌子如何:

      Line1   Line2
Col1 'L1'    'B'
Col2 'L2'    'B'
Col3 'L3'    'A'
Col4 'L4'    'C'
Col5 'L5'    'B'
Col6 'L6'    'C'
Col7 'L7'    'C'
Col8 'L8'    'A'

然后我如何查找所有以B作为列的行,如b_values = table( 'B' == table(:,2))

预期输出:

      Line1   Line2
Col1 'L1'    'B'
Col2 'L2'    'B'
Col5 'L5'    'B'

1 个答案:

答案 0 :(得分:1)

要获取所需的表,可以使用Matlab的table VariableNames RowNames 属性。

L = {'L1';'L2';'L3';'L4';'L5';'L6';'L7';'L8'}
Var = {'B';'B';'A';'C';'B';'C';'C';'A'};
%Create table.
T = table(L,Var);

%Add headers.
T.Properties.VariableNames = {'Line1','Line2'};

%Add row names.
T.Properties.RowNames = {'Col1','Col2','Col3','Col4','Col5','Col6','Col7','Col8'};

如Anthony所指出的,只需使用逻辑索引即可获得子表:

>>T(strcmp(T.Line2,'B'),:)

        Line1    Line2
        _____    _____

Col1    'L1'     'B'  
Col2    'L2'     'B'  
Col5    'L5'     'B'