How can I delete/extract rows from a table with cell columns consisting of str and numeric values
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I have a table comprising of number and cell columns:
From this table I would like to extract all rows which have "pits" in a cell in column 3 / Type.
My approaches so far:
1. Extract it via "strfind"
Ppits=P(cellfun(@isempty, strfind(P.Type, 'pits')), :);
Error:
Error using strfind
Cell must be a cell array of character vectors.
2. Delete rows with "0" or []. All attempts like logical indexing didn't work due to the fact that it's a table or the column has numerical and str values.
e.g.
>> toDelete = P < 6;
P(toDelete,:) = [];
Undefined operator '<' for input arguments of type 'table'.
1 comentario
Peter Perkins
el 18 de Jul. de 2017
Change the zeros to ''. Those elements will become undefined categorical values.
Respuestas (1)
dbmn
el 14 de Jul. de 2017
The easiest way to extract the "pits" is to do the following
% Convert your column type to a format called categorical
% This format is supported by the table format
P.Type = categorical(P.Type)
% Then you can compare it like you would with numbers
P(P.Type == 'pits', :)
if you want to do the same with f.ex PH value just use
P(P.pH < 7, :)
and combine the two as you like
1 comentario
Ver también
Categorías
Más información sobre Categorical Arrays 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!