Re-arranging array columns in alternating form

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?

 채택된 답변

Guillaume
Guillaume 2018년 12월 18일
편집: Guillaume 2018년 12월 18일

1 개 추천

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.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Loops and Conditional Statements에 대해 자세히 알아보기

질문:

2018년 12월 18일

댓글:

2018년 12월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by