How to concatenate 3D cells arrays

조회 수: 6 (최근 30일)
Mori
Mori 2016년 7월 9일
댓글: Mori 2016년 7월 9일
Here I am posting my question graphically to illustrate better my question.
I have 2 3D cell array (A, B) with the same cell sizes and different lengths. I want to Concatenate A and B in order to get C which has same cell size but longer length.
  댓글 수: 7
Mori
Mori 2016년 7월 9일
편집: Mori 2016년 7월 9일
3 arrays with 11 cells each with 61 cells, array A with 2252, B with 700, C with 1000 doubles.
I want an array with 11 cells, each 61 cell each with (2252+700+1000) doubles. first 11 cells is in Y direction, next 61 cells are in X direction and doubles are in Z direction.
*Yes, you right I noticed my figure is not illustrate my problem. Here is the update of the figure. Sorry about that.
Mori
Mori 2016년 7월 9일
Indeed keeping the cell array format and line up the doubles at each cell

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

채택된 답변

per isakson
per isakson 2016년 7월 9일
편집: per isakson 2016년 7월 9일
Try
>> R = cssm()
R =
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
{61x1 cell}
>> R{1}{1}
ans =
Columns 1 through 14
1 2 3 4 5 6 7 8 9 1 2 3 4 5
Columns 15 through 18
6 1 2 3
>> R{11}{61}
ans =
Columns 1 through 14
1 2 3 4 5 6 7 8 9 1 2 3 4 5
Columns 15 through 18
6 1 2 3
and
>> tic, R = cssm(); toc
Elapsed time is 0.008893 seconds.
where
function R = cssm( )
A = (1:9);
A = repmat( {A}, [61,1] );
A = repmat( {A}, [11,1] );
B = (1:6);
B = repmat( {B}, [61,1] );
B = repmat( {B}, [11,1] );
C = (1:3);
C = repmat( {C}, [61,1] );
C = repmat( {C}, [11,1] );
R = cell( 11, 1 );
for jj = 1 : 11
D = cell( 61, 1 );
for ii = 1 : 61
D{ii} = cat( 2, A{jj}{ii}, B{jj}{ii}, C{jj}{ii} );
end
R{jj} = D;
end
end
&nbsp
"next 61 cells are in X direction" &nbsp replace 61,1 by 1,61
"doubles are in Z direction" &nbsp I don't understand what you mean.
  댓글 수: 1
Mori
Mori 2016년 7월 9일
GREAT! it works, Thank you

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

추가 답변 (1개)

Walter Roberson
Walter Roberson 2016년 7월 9일
C = cat(3, A, B);
  댓글 수: 1
Mori
Mori 2016년 7월 9일
This is not the one I want. let say A{1,1} has and matrix of [100,1] and B{1,1} has a matrix of [20,1] and so on. with CAT i get 2 sheets but what I need all recorded in on sheet at the same index map. For C{1,1} i want a matrix of [120,1]. thank you

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

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by