Reshape n-th dimension of an array

1 visualización (últimos 30 días)
zdarova_koresh
zdarova_koresh el 7 de Ag. de 2020
Comentada: zdarova_koresh el 7 de Ag. de 2020
I have an 285x51xn array. I need to reshape it in 3rd (n) dimension. Essentialy, I want to rotate all layers of 285x51 matrix 90 degrees and flip them upside down and then save as 285x51xn array.
I have written the following code but it gives an error that dimensions mismath. I feel there is a problem with indexing.
for k = 1:length(test(1, 1, :))
test(:,:,k)=rot90(test(:,:,k));
test(:,:,k)=flipud(test(:,:,k))
end
Please, correct me.

Respuesta aceptada

Bruno Luong
Bruno Luong el 7 de Ag. de 2020
Editada: Bruno Luong el 7 de Ag. de 2020
You operation makes the array changing its size, you can't use for-loop to store the rotated page in the SAME arrray.
And btw fllipupd(rot90(...)) is simply exchange the first 2 dimensions
test = permute(test,[2 1 3]);
  1 comentario
zdarova_koresh
zdarova_koresh el 7 de Ag. de 2020
Brilliantly! I have not even noticed it.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by