Finding NaNs in cell array.
    19 vues (au cours des 30 derniers jours)
  
       Afficher commentaires plus anciens
    
I create a cell array by importing some data (text and empty cells) from excel. It looks like this.. "Data_text =
Columns 1 through 7
    'Speed'    'Load'    [NaN]    'Sample'    'Calgen_Model'    'DOE_BSNOx'    'DOE_Pmax'
I want to find columns which contains NaN (from empty cells in excel) and delete those columns. I tried following but it does not seems to work.
Column_Names = cell2table(Data_text);
a = cellfun(@isnan,Data_text);
Thanks,
1 commentaire
Réponses (3)
  Fangjun Jiang
      
      
 le 20 Mai 2016
        Data_text={'Speed'    'Load'    [NaN]    'Sample'};
index=cellfun(@isnan,Data_text,'uni',false);
index=cellfun(@any,index);
Data_text(index)=[];
2 commentaires
  Fangjun Jiang
      
      
 le 20 Mai 2016
				Data_text={'a','b', nan ,'c';1,2,3,4};
index=cellfun(@isnan,Data_text(1,:),'uni',false);
index=cellfun(@any,index);
Data_text(:,index)=[];
The first index is still a cell array. Use cellfun(@any,...) to get the logical index. Type "help any" to find the info for the any() function.
  Azzi Abdelmalek
      
      
 le 20 Mai 2016
        Data_text={'Speed' 'Load' nan 'Sample'}
Data_text(:,cellfun(@(x) any(isnan(x)),Data_text(1,:)))=[]
0 commentaires
Voir également
Catégories
				En savoir plus sur Matrix Indexing dans Help Center et File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



