# Combine two cell array of different dimension

104 views (last 30 days)
I have a two cell array A = {1,2}, B={4;5;6}
I need the result as one single array C = { 1 2 4
5
6 }
How it can be done?
Thank you
Guillaume on 7 May 2015
Edited: Guillaume on 7 May 2015
If your cell arrays only contain scalar values, why are you bothering with cell arrays instead of the much faster and easier to use plain matrices?
Furthermore, it's unclear what output you want. Note that:
C = { 1 2 4
5
6 }
is not valid matlab syntax.

Thomas Koelen on 7 May 2015
Edited: Thomas Koelen on 7 May 2015
A={1,2};
B={4,5,6};
C=cat(2,A,B)
C =
[1] [2] [4] [5] [6]
2 in cat is the direction you want to concatenate in, 1 does it vertically, which doesn't work because the cell doesn't have the same number of columns!
Thomas Koelen on 7 May 2015
O, I didn't seee that! Must've thought it was a typo.
What you can do is:
A={1,2};
B={4;5;6};
C=cat(2,A,B')
C =
[1] [2] [4] [5] [6]
Like Guillaume said, there is no way to make a matrix or cell that's not a rectangle.

Sabarinathan Vadivelu on 7 May 2015
Edited: Sabarinathan Vadivelu on 7 May 2015
Try this
A = {1,2};
B = {3, 5, 6};
C = horzcat(A, B)
ans =
C = {1 2 3 5 6}
Sabarinathan Vadivelu on 7 May 2015
You should transpose one vector and then concatenate it.

singh on 7 May 2015
Edited: singh on 7 May 2015
A = {1,2}, B={3;4;5}
vertcat([A]',B)
ans =
[1]
[2]
[3]
[4]
[5]