3D to 2D matrix and then drop the NANS?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Islam
el 29 de Nov. de 2013
Respondida: Wayne King
el 29 de Nov. de 2013
I have b(j,k,w) 3D matrix (3,4,2), I want to convert it to one line vector and then drop the NAN elements
The 3D matrix is
b(:,:,1) =
218. 129. 142. 63.
NaN NaN NaN NaN
NaN NaN NaN NaN
b(:,:,2) =
140 109 119 61
NaN NaN NaN NaN
NaN NaN NaN NaN
I want to reshape the b(:,:,1) in one line then b(:,:,2) , combine them in one line and then drop the NANS
I tried to :- convert it to 2D matrix with the full set reshape(b,[w ,k*j])
ans =
218. 129. 142. 63. 140 109 119 61
NaN NaN NaN NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN NaN NaN NaN
Now I want it to be like this, but I couldn't keep the order of the lines as shown
218. 129. 142. 63. NaN NaN NaN NaN NaN NaN NaN NaN 140 109 119 61 71 NaN NaN NaN NaN NaN NaN NaN NaN
and then drop the NANS to end with this (how to drop them ?)
218. 129. 142. 63. 140 109 119 61 71
0 comentarios
Respuesta aceptada
Wayne King
el 29 de Nov. de 2013
You can just reshape the transposes of each "page"
c1 = reshape(b(:,:,1)',12,1);
c2 = reshape(b(:,:,2)',12,1);
C = [c1; c2];
C = C(~isnan(C));
0 comentarios
Más respuestas (1)
Ver también
Categorías
Más información sobre Numeric Types en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!