# Cell arrays with a vector within a cell within a cell

조회 수: 6 (최근 30일)
L'O.G. . 2023년 5월 7일
댓글: L'O.G. . 2023년 5월 9일
I have a cell array where each element consists of a 1 x 1 cell containing a vector of type double, i.e., C{1,1} contains a vector of length N.
How do I convert the inner cells from 1 x 1 cells into N x 1 cells where the entries correspond to each vector of length N? The N of each vector might be different.
I think the right way to do this is via cellfun but something like
C_out = cellfun(@(C_test) num2cell(C_test{1}), C_in, 'uniform',0);
does not quite get me there.

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

### 채택된 답변

Matt J 2023년 5월 9일
Maybe this is what you mean?
C_in={[1;2;3],[4;5],6}
C_in = 1×3 cell array
{3×1 double} {2×1 double} {}
n=max(cellfun('length',C_in));
C_out=num2cell(cell2mat( cellfun(@(x) cpad(x,n), C_in,'uni',0) ) )
C_out = 3×3 cell array
{} {[ 4]} {[ 6]} {} {[ 5]} {[NaN]} {} {[NaN]} {[NaN]}
C(end+1:n,1)=nan;
end
##### 댓글 수: 1표시 없음숨기기 없음
L'O.G. 2023년 5월 9일
Yes, thank you!

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

### 추가 답변 (2개)

Walter Roberson 2023년 5월 7일
cellfun up a num2cell call.
##### 댓글 수: 1표시 없음숨기기 없음
L'O.G. 2023년 5월 7일
편집: L'O.G. 님. 2023년 5월 8일
What does "cellfun up" mean? I think that's what I tried to do as I mention in my question.

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

Matt J 2023년 5월 9일
편집: Matt J 님. 2023년 5월 9일
Is this what you mean?
C_in={{[1;2;3]},{[4;5]},{6}}
C_in = 1×3 cell array
{1×1 cell} {1×1 cell} {1×1 cell}
C_out=[C_in{:}]
C_out = 1×3 cell array
{3×1 double} {2×1 double} {}

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

### 카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

R2021b

### Community Treasure Hunt

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

Start Hunting!