Effacer les filtres
Effacer les filtres

Re-arranging array columns in alternating form

1 vue (au cours des 30 derniers jours)
Saeid
Saeid le 18 Déc 2018
Commenté : Saeid le 18 Déc 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?

Réponse acceptée

Guillaume
Guillaume le 18 Déc 2018
Modifié(e) : Guillaume le 18 Déc 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.
  1 commentaire
Saeid
Saeid le 18 Déc 2018
Brilliant! Thanks Guillaume!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrices and Arrays dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by