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

137 Ansichten (letzte 30 Tage)
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?

Akzeptierte Antwort

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

Weitere Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Community Treasure Hunt

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

Start Hunting!

Translated by