MATLAB: 3rd dimension data from each pixel to column-wise

3rd dimension data

I have 3D matrix of 80x100x27. Third dimnesion contains my required data. I want to extract each pixel value from third dimension (1x1x27) and place that in and place that in column (27×1). I want to do it for all data. So I will be having 8000 columns and 27 rows (27×8000). But some pixels in 3rd-dimension are totally NaN, if values are NaN, I don't want to include those columns. Please also show how to remove NaN values. Thanks

Best Answer

Let A - your array [80x100x27]
[m,n,k] = size(A);
B = reshape(permute(A,[3,1,2]),k,[]);
out = B(:,all(~isnan(B)));