How to remove Nan layers from 3D array?
    6 views (last 30 days)
  
       Show older comments
    
    Giacomo Caporusso
 on 10 Jul 2023
  
    
    
    
    
    Commented: Giacomo Caporusso
 on 13 Jul 2023
            I have an array of 3 dimensions (rows, columns end layers).
I want to do two things:
1) get the list of layers containing only nan;
3) get the array where the layers containing only nan have been removed.
0 Comments
Accepted Answer
  colordepth
      
 on 10 Jul 2023
        Here's a short demo on this:
% A is your 3D array
A = rand(4,4,4);
A(:,:,2) = nan; % making second layer nan for demonstration
% Check if a layer contains only NaN
layersWithNaN = all(all(isnan(A), 1), 2);
% 1. Get the list of layers containing only NaN
listOfLayersWithNaN = find(layersWithNaN);
% 2. Get the array where the layers containing only NaN have been removed
A(:,:,listOfLayersWithNaN) = [];
More Answers (0)
See Also
Categories
				Find more on Operators and Elementary Operations 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!
