How I can combine this cell values in a single matrix?
조회 수: 1 (최근 30일)
이전 댓글 표시
How I can get in a single (12X28) matrix
댓글 수: 2
Simon Chan
2021년 8월 16일
If the size of the first cell is [5x7 double], you may combine them to become a (12x7) matrix because all of them have 7 columns only.
Or you would like to repeat the cells until the final one has 28 columns?
답변 (2개)
Wan Ji
2021년 8월 16일
If X{1} is 1x7 array, the simplest way is
matrixOut = cell2mat(X')
댓글 수: 6
Wan Ji
2021년 8월 17일
If your rowNum is a variable, is it calculated in this way?
RowNum = prod(arrayfun(@(i)size(X{i},1), 1:1:numel(X)))
Then
RowNum =
12
The whole code my be
RowNum = prod(arrayfun(@(i)size(X{i},1), 1:1:numel(X)));
X = arrayfun(@(i)repmat(X{i},RowNum/size(X{i},1),1), 1:1:numel(X), 'uniform', 0);
A = cell2mat(X) % A is what you want
Simon Chan
2021년 8월 17일
편집: Simon Chan
2021년 8월 17일
Something like this and final matrix is C
clear; clc;
X = cell(1,4);
X{1} = round(10*rand(1,7));
X{2} = round(10*rand(3,7));
X{3} = round(10*rand(2,7));
X{4} = round(10*rand(2,7));
B{1} = repmat(X{1},12,1);
B{2} = repmat(kron(X{2},ones(2,1)),2,1);
B{3} = repmat(X{3},6,1);
B{4} = kron(X{4},ones(6,1));
C = cell2mat(B);
댓글 수: 2
Simon Chan
2021년 8월 17일
Need to know the pattern how to repeat the matrix. If a pattern can be found, it is able to implement it in a loop.
However, I am also confused since the repeating method of a 2 rows matrix may be different (The left and right matrix in your elaboration).
참고 항목
카테고리
Help Center 및 File Exchange에서 Multidimensional Arrays에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!