Extract all columns from a table where the column names "start with" a string

187 views (last 30 days)
How can I extract all columns from a table where the column names "start with" a string?
For example, in
mytable = array2table(NaN(4,5));
mytable.Properties.VariableNames = {'A1', 'A2', 'B1', 'F2', 'F4'};
How would I extract all the "F*" columns in to a new table?

Accepted Answer

Walter Roberson
Walter Roberson on 28 Aug 2019
mask = startsWith( mytable.Properties.VariableNames, 'F');
Fcols = mytable(:,mask);

More Answers (1)

Arnaud Delorme
Arnaud Delorme on 27 May 2022
Edited: Arnaud Delorme on 27 May 2022
colNames = fieldnames(mytable);
[~,inds] = intersect(colNames, { 'A1' 'A2' } );
mytable = mytable(:,sort(inds));
  1 Comment
Walter Roberson
Walter Roberson on 27 May 2022
This would not get you anything that mytable(:, { 'A1' 'A2' } ) would not give, other than preserving relative order of variables.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!