How to reshape an M x (aN) matrix into a (aM) x (N) matrix in MATLAB?

1 visualizzazione (ultimi 30 giorni)
Hey everyone,
I want to reshape an M x (aN) matrix into a (aM) x (N) matrix in MATLAB without using nested for loops?
An example transformation is given below if a=3. (Each square is given with a size of M x N)

Risposta accettata

Bruno Luong
Bruno Luong il 28 Mar 2022
Modificato: Bruno Luong il 28 Mar 2022
Use permute
m = 3;
n = 2;
a = 4;
A = reshape(zeros(m,n)+reshape(1:a,[1 1 a]),[m n*a]);
A
A = 3×8
1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4 1 1 2 2 3 3 4 4
B = reshape(permute(reshape(A,[m n a]),[1 3 2]),[m*a n])
B = 12×2
1 1 1 1 1 1 2 2 2 2 2 2 3 3 3 3 3 3 4 4

Più risposte (0)

Categorie

Scopri di più su Creating and Concatenating Matrices in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by