Converting 2D cell array to 3D matrix

39 次查看(过去 30 天)
I have a cell that is [8x454] with each element in the cell containing a [900x1] matrix. I would like to convert this cell into a 3 dimensional matrix of size [8x454x900]. Ive tried some things including reshape, cat and permute but can never seem to get it right. Any help would be greatly appreciated!

采纳的回答

James Tursa
James Tursa 2023-6-10
编辑:James Tursa 2023-6-10
E.g.,
MyCell = repmat({(1:4)'},2,3) % small sample data
MyCell = 2×3 cell array
{4×1 double} {4×1 double} {4×1 double} {4×1 double} {4×1 double} {4×1 double}
[m,n] = size(MyCell);
reshape(cell2mat(MyCell(:)').',m,n,[])
ans =
ans(:,:,1) = 1 1 1 1 1 1 ans(:,:,2) = 2 2 2 2 2 2 ans(:,:,3) = 3 3 3 3 3 3 ans(:,:,4) = 4 4 4 4 4 4
size(ans)
ans = 1×3
2 3 4

更多回答(1 个)

Walter Roberson
Walter Roberson 2023-6-9
cell2mat(reshape(YourCell, 1, 1,[]))

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by