MATLAB Answers


Find column names with particular names in MATLAB table

Asked by Dhruv Ghulati on 21 Dec 2015
Latest activity Commented on by Peter Perkins
on 17 Feb 2019
Hi there,
I have a massive table with 408 columns in MATLAB. I want to get rid of columns that start with the word "connected". Instead of having to manually check the table and do something like
finalnbs(:,212:364) = [];
is the table, how do I find all columns in finalnbs which start with connected e.g.
And then remove those?

  1 Comment

please upload mat table, and let me know the datatype of finalnbs

Sign in to comment.

3 Answers

Answer by Walter Roberson
on 21 Dec 2015
 Accepted Answer

finalnbs(:,strncmp(finalnbs.Properties.VariableNames, 'connected', length('connected')) ) = [];


Sign in to comment.

Answer by Renato Agurto on 21 Dec 2015
Edited by Renato Agurto on 21 Dec 2015

if "titles" is the first row of your table, then:
titles = finalnbs(1,:);
%Select the columns that should stay
idxs = cellfun(@(x) length(x) < 9 || ~strcmp(x(1:9),'connected'),titles);
finalnbs = finalnbs(:,idxs);


Sign in to comment.

Answer by Joseba Moreno on 14 Feb 2019

I have a similar problem but in my case I would like to remove the columns which contain the word "free".
How can I do that?


With new enough matlab you can use contains() to test whether a substring occurs somewhere in a string .
or strfind in older versions.

Sign in to comment.