create cell from array with specified size

3 次查看(过去 30 天)
Hello,
Let mymatrix a 24x1 double, how is it possible to obtain a group as specified_sizex1 cell?
For example:
mymatrix=[1:24];
group={[mymatrix(1) mymatrix(2)],...}

采纳的回答

Dyuman Joshi
Dyuman Joshi 2023-12-19
编辑:Dyuman Joshi 2023-12-19
Note that the specified size must completely divide the number of rows in the column vector -
mymatrix=[1:24].';
size(mymatrix)
ans = 1×2
24 1
%Total number of elements in the vector
n = numel(mymatrix);
%Specified size
ss1 = 2;
out1 = mat2cell(mymatrix, repelem(n/ss1, 1, ss1), 1)
out1 = 2×1 cell array
{12×1 double} {12×1 double}
%Example 2
ss2 = 4;
out2 = mat2cell(mymatrix, repelem(n/ss2, 1, ss2), 1)
out2 = 4×1 cell array
{6×1 double} {6×1 double} {6×1 double} {6×1 double}

更多回答(2 个)

Fangjun Jiang
Fangjun Jiang 2023-12-19
num2cell(mymatrix)

Voss
Voss 2023-12-19
编辑:Voss 2023-12-19
mymatrix = (1:24).'
mymatrix = 24×1
1 2 3 4 5 6 7 8 9 10
specified_size = 4;
assert(mod(numel(mymatrix),specified_size)==0, ...
'numel(mymatrix) is not a multiple of specified_size')
group = num2cell(reshape(mymatrix,[],specified_size).',2)
group = 4×1 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]}

类别

Help CenterFile Exchange 中查找有关 Language Fundamentals 的更多信息

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by