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

1 Stimme

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

0 Stimmen

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
I'm sorry if i have an array like this:
0.4 0.9 0.4 0.7 0.2 0.01 0.2 0.7
how can i permute the array in another like this?:
0.4 0.9 0.4 0.7
0.2 0.01 0.2 0.7
Thank you!
reshape(a,numel(a)/2,[])' % where a your array
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!
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.

Kategorien

Produkte

Version

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by