Azzera filtri
Azzera filtri

Subset Table using an array of strings

7 visualizzazioni (ultimi 30 giorni)
Metin Akyol
Metin Akyol il 12 Nov 2021
Commentato: Metin Akyol il 12 Nov 2021
I am using the following code to select a subset of my table based on column names:
table_subset = table(:,ismember(table.Properties.VariableNames, {'col1' 'col2'}));
However, I would like to provide the cell input based on an existing array of column names, like so:
list_of_cols = ['col1' 'col2']
table_subset = table(:,ismember(table.Properties.VariableNames, list_of_cols));
But I am getting an empty table.

Risposte (1)

Dave B
Dave B il 12 Nov 2021
Modificato: Dave B il 12 Nov 2021
I think you want
list_of_cols = {'col1' 'col2'}
list_of_cols = 1×2 cell array
{'col1'} {'col2'}
or
list_of_cols = ["col1" "col2"]
list_of_cols = 1×2 string array
"col1" "col2"
because list_of_cols as you wrote it evaluates to the wrong thing:
list_of_cols = ['col1' 'col2']
list_of_cols = 'col1col2'
Here's a quick test:
t=table(1,2,3);
list_of_cols = {'Var1' 'Var3'};
t(:,ismember(t.Properties.VariableNames,list_of_cols))
ans = 1×2 table
Var1 Var3 ____ ____ 1 3

Community Treasure Hunt

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

Start Hunting!

Translated by