3rd dimension data from each pixel to column-wise

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 (27x1). I want to do it for all data. So I will be having 8000 columns and 27 rows (27x8000). 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

 Risposta accettata

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

2 Commenti

But this results in 8000x1. While I need it in 27x8000.

Accedi per commentare.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by