MATLAB: How can i add a main line and main column for the table

datatable

my table :
'L1' 'B'
'L2' 'B'
'L3' 'A'
'L4' 'C'
'L5' 'B'
'L6' 'C'
'L7' 'C'
'L8' 'A'
How i'd like my table to be :
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'
Then how can i find all lines with B as column, would something like b_values = table( 'B' == table(:,2))
expected output:
Line1 Line2
Col1 'L1' 'B'
Col2 'L2' 'B'
Col5 'L5' 'B'

Best Answer

Given c is a cell array of your initial data, then
t=cell2table(c,'VariableNames',{'Line1','Line2'},'RowNames',cellstr(num2str([1:size(c,1)].','Col%d')))
t =
8×2 table
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'
>>
For such data, however, I'd strong recommend using categorical
>> t=table(categorical(c(:,1)),categorical(c(:,2)),'VariableNames',{'Line1','Line2'},'RowNames',cellstr(num2str([1:size(c,1)].','Col%d')))
t =
8×2 table
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
>>