splitting Cell array in a loop

2 views (last 30 days)
HYZ
HYZ on 29 Aug 2022
Commented: Stephen23 on 30 Aug 2022
Hi,
I want to split X into Y, a 1 x 4 cell. Y will be {[1:8]} {[9:16]} {[17:24]} {[25 32]}. thanks.
X = 1:32;
Y = cell (1,4);
for j = [1,9,17,25];
for i = 1: 4
Y{1,i} = X (j:j+7);
end
end

Accepted Answer

Voss
Voss on 29 Aug 2022
X = 1:32;
Y = cell(1,4);
j = [1,9,17,25];
for i = 1:numel(j)
Y{1,i} = X(j(i):j(i)+7);
end
disp(Y)
{[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]}
Or:
Y = num2cell(reshape(X,[],4).',2).'
Y = 1×4 cell array
{[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]}

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by