Find column names with particular names in MATLAB table

33 visualizaciones (últimos 30 días)
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) = [];
Where
finalnbs
is the table, how do I find all columns in finalnbs which start with connected e.g.
connected*
And then remove those?
  1 comentario
harjeet singh
harjeet singh el 21 de Dic. de 2015
please upload mat table, and let me know the datatype of finalnbs

Iniciar sesión para comentar.

Respuesta aceptada

Walter Roberson
Walter Roberson el 21 de Dic. de 2015
finalnbs(:,strncmp(finalnbs.Properties.VariableNames, 'connected', length('connected')) ) = [];

Más respuestas (2)

Renato Agurto
Renato Agurto el 21 de Dic. de 2015
Editada: Renato Agurto el 21 de Dic. de 2015
Hello
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);

Joseba Moreno
Joseba Moreno el 14 de Feb. de 2019
Hello,
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?
Thanks!
Joseba
  2 comentarios
Walter Roberson
Walter Roberson el 14 de Feb. de 2019
With new enough matlab you can use contains() to test whether a substring occurs somewhere in a string .
Peter Perkins
Peter Perkins el 17 de Feb. de 2019
or strfind in older versions.

Iniciar sesión para comentar.

Categorías

Más información sobre Electrical Block Libraries en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by