Group all the columns every N rows

6 Ansichten (letzte 30 Tage)
Riccardo Rossi
Riccardo Rossi am 24 Jan. 2019
Kommentiert: madhan ravi am 29 Jan. 2019
Hi everyone,
i have an array like this:
A
0.5 0.4 0.5
0.9 0.3 0.5
0.5 0.5 0.1
0.5 0.4 0.2
0.9 0.8 0.2
0.3 0.5 0.2
and i want to create a cell arrays like these (group all the columns every N rows, with N=2):
{A1}
0.5 0.4 0.5
0.9 0.3 0.5
{A2}
0.5 0.5 0.1
0.5 0.4 0.2
{A3}
0.9 0.8 0.2
0.3 0.5 0.2
How can i do it?
Thank you very much!

Akzeptierte Antwort

madhan ravi
madhan ravi am 24 Jan. 2019
Bearbeitet: madhan ravi am 24 Jan. 2019
Your way:
N=2;
A=mat2cell(a,repelem(N,size(a,1)/N));
celldisp(A)

Weitere Antworten (1)

madhan ravi
madhan ravi am 24 Jan. 2019
Bearbeitet: madhan ravi am 24 Jan. 2019
One way:
N=2;
[~,c]=size(A);
U=reshape(A',c,N,[]);
R=permute(U,[2 1 3])
  4 Kommentare
Riccardo Rossi
Riccardo Rossi am 29 Jan. 2019
Sorry but it does not run. I improve my example. I have an array like this:
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
how can i permute the array in another like this?:
1 2 3 4
9 10 11 12
17 18 19 20
25 26 27 28
5 6 7 8
13 14 15 16
21 22 23 24
29 30 31 32
Thank you so much!
madhan ravi
madhan ravi am 29 Jan. 2019
I see you have asked another question regarding this issue but here is one solution:
N=4;
[m,c]=size(A);
U=reshape(A',m,[],N);
R=permute(U,[1 3 2]);
BB=reshape(R,N,[],1)'

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by