How to delete specific lines in a table
    8 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
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 Kommentare
Antworten (2)
  James Tursa
      
      
 am 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 Kommentare
  Azzi Abdelmalek
      
      
 am 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 Kommentar
  Peter Perkins
    
 am 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.
Siehe auch
Kategorien
				Mehr zu Tables finden Sie in Help Center und File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



