How to Convert a 3D Matrix into Cell Array of Desire Dimension
조회 수: 5 (최근 30일)
이전 댓글 표시
채택된 답변
Paul
2023년 6월 27일
A = rand(2,100,500); % example data
C = squeeze(num2cell(A,[1 2])); % create cell array
whos C
isequal(cat(3,C{:}),A) % verify
댓글 수: 2
Paul
2023년 6월 27일
A = rand(500,2,100);
C = num2cell(A,[2 3]); % line 1
At this point, each elment of C is 1 x 2 x 100 and is isequal to the corresponding slice of A. For example
size(C{293})
isequal(C{293},A(293,:,:))
To make each cell 2 x 100
C = cellfun(@(c) squeeze(c),C,'UniformOutput',false); % line 2
size(C)
size(C{293})
isequal(C{293},squeeze(A(293,:,:)))
Lines 1 and 2 can be combined into a single line if desired.
There may be a better way to do this.
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!