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

187 visualizzazioni (ultimi 30 giorni)
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?

Risposta accettata

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

Più risposte (1)

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

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by