Info
Diese Frage ist geschlossen. Öffnen Sie sie erneut, um sie zu bearbeiten oder zu beantworten.
Erase all the rows that contain NaN
    5 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
Dear all
I have
[N,T,R]=xlsread(name)
I want to erase all the rows in R that contain only NaN
thanks
[EDITED, copied from comments]:
So to input cell matrix is
 'TOTPAIN'            [NaN]                   [6.9150]
              [1x40 char]    [NaN]                  [6.90]
    [                NaN]    [NaN]                             [NaN]
    [                NaN]    [NaN]                       [NaN]
    'MAS'                   [NaN]                           [NaN]
    'MAR PACK G'        [NaN]                            [6.7]
    'MA 3 PACK 58G'        [NaN]              [6.7]
0 Kommentare
Antworten (3)
  Miro
      
 am 18 Jul. 2012
        
      Bearbeitet: Miro
      
 am 18 Jul. 2012
  
      hi,
try this
[n,~]=size(R)
R_new = [];
for i = 1 : n
  R_tmp = R(i,:);
  if length(find(isnan(R_tmp)) ~= length(R_tmp) 
    R_new = [R_new;R_tmp]
  end
end
7 Kommentare
  Miro
      
 am 18 Jul. 2012
				
      Bearbeitet: Miro
      
 am 18 Jul. 2012
  
			sorry for the missunderstanding. the following should work Your example looks like you want to delete the Coloumn, not the Row... For deleting the column try the following:
      function Rout = deleteNAN(Rin)
      [~,n]=size(R)
      R_new = {};
      for i = 1 : n
          R_tmp = cell2mat(R(:,i));
          if length(find(isnan(R_tmp))) ~= length(R_tmp) 
            R_new = [R_new R_tmp]
          end
      end
      Rout = R_new
Store this in a .m file in your current folder and run it.
  Jan
      
      
 am 18 Jul. 2012
        Perhaps something like this:
index = cellfun(@isequalwithequalnans, R, {NaN});
R(all(index, 2)) = [];
But due to a vague defined input, this contains too much guessing to be reliable. Sorry.
1 Kommentar
  Andrei Bobrov
      
      
 am 18 Jul. 2012
        Rout = R(~all(cellfun(@(x)all(isnan(x)),R),2),:)
4 Kommentare
  Jan
      
      
 am 18 Jul. 2012
				@Sabbas: Do you get a "warning" or an "error"? In both cases posting the message would be a good idea.
Diese Frage ist geschlossen.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!