Re-arranging array columns in alternating form

1 visualización (últimos 30 días)
Saeid
Saeid el 18 de Dic. de 2018
Comentada: Saeid el 18 de Dic. de 2018
I would like to write a function:
function [Y]=AlternateColumns(X,n)
that takes an array X of the form:
AlterBefore.png
and turns it into Y of the form:
AlterAfter.png
In this example n=3, but it could be any number by which the entire number of columns is divisible. How is this possible without using a loop?

Respuesta aceptada

Guillaume
Guillaume el 18 de Dic. de 2018
Editada: Guillaume el 18 de Dic. de 2018
function Y = AlternateColumns(X, n)
Y = reshape(permute(reshape(X, size(X, 1), [], n), [1 3 2]), size(X, 1), []);
end
Basically, reshape into a 3D array, swap dimensions 2 and 3 and reshape back into original shape.

Más respuestas (0)

Categorías

Más información sobre Resizing and Reshaping Matrices 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!

Translated by