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일

0 개 추천

num2cell(mymatrix)

댓글 수: 2

it doesn't work good for a specified_size different from 2
mat2cell(mymatrix,[1],[6, 6, 6, 6])

댓글을 달려면 로그인하십시오.

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]}

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

제품

릴리스

R2022b

태그

질문:

2023년 12월 19일

편집:

2023년 12월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by