How to delete specific lines in a table
6 views (last 30 days)
Show older comments
Hello all, Let's say I have a table A with 15 variables. In this table, I have variable B which contains a weird mix of numbers, empty cells and symbols like so:
B = [1, '' , 14, '(' , 2, 9, '}', '']
Now, I want to delete every row in the entire table where variable B is either empty or not a number. Any ideas? Thanks all!
0 Comments
Answers (2)
James Tursa
on 12 Jul 2016
E.g., assuming variable B is really a cell array since you stated it had mixed numeric and character data:
x = ~cellfun(@isnumeric,A.B) | cellfun(@isempty,A.B);
A(x,:) = [];
0 Comments
Azzi Abdelmalek
on 12 Jul 2016
Look at this example
B = {1, '' , '14b', '(' , 2, 9, '}', ''}'
A=num2cell(ones(size(B)))
C=cell2table([A B],'variablenames',{'A','B'})
k=table2cell(C)
idx=cellfun(@(x) isnumeric(x),k(:,2))
k=k(idx,:)
out=cell2table(k)
1 Comment
Peter Perkins
on 3 Aug 2016
There's no point in converting to a cell array and then back again. James' response shows how to use table subscripting directly.
See Also
Categories
Find more on Legend in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!