How do I delete slices in 3D-Array?
21 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Kay Schmidt
el 8 de Abr. de 2021
Hey there,
I have a multidimensional Array where some of the slices along the third dimension only contains zeros in rows and columns. How do I delete those?
Thanks :)
2 comentarios
Saravanan Sengottuvel
el 8 de Abr. de 2021
Generating an example 3D array that has 10 slices
A = repmat([0 0 0 0; 1 0 0 0; 1 0 1 0],[1 1 10]);
Modifying the 4th & 8th slice to contain only zeros in rows and columns
A(:,:,4)=[0 0 0 0;0 0 0 0;0 0 0 0];
A(:,:,8)=[0 0 0 0;0 0 0 0;0 0 0 0];
Find the slice index in 3rd dimension that has only zeros in rows and columns
idx = all(A == 0, [1 2])
Now, delete the slices that has zeros from the original 3D array A
A(:,:,idx) = []
I hope this gives you an idea how to solve your problem.
Respuesta aceptada
Matt J
el 8 de Abr. de 2021
Saravanan Sengottuvel's answer moved here:
Generating an example 3D array that has 10 slices
A = repmat([0 0 0 0; 1 0 0 0; 1 0 1 0],[1 1 10]);
Modifying the 4th & 8th slice to contain only zeros in rows and columns
A(:,:,4)=[0 0 0 0;0 0 0 0;0 0 0 0];
A(:,:,8)=[0 0 0 0;0 0 0 0;0 0 0 0]
Find the slice index in 3rd dimension that has only zeros in rows and columns
idx = all(A == 0, [1 2]);
Now, delete the slices that has zeros from the original 3D array A
A(:,:,idx) = []
I hope this gives you an idea how to solve your problem.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Matrix Indexing 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!