我的桌子:
'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'
答案 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'