Combine two cell array of different dimension

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

1 Comment

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.

Sign in to comment.

 Accepted Answer

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!

4 Comments

In the OP post, A is a row vector, and B is a column vector. There's no way to concatenate both (without reshaping).
I have B as 3x1 and A as 1x2. I have to concatenate in that case. Is it possible?
thank you
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.
What if it’s a different number of columns and of rows?

Sign in to comment.

More Answers (2)

Try this
A = {1,2};
B = {3, 5, 6};
C = horzcat(A, B)
ans =
C = {1 2 3 5 6}

3 Comments

In the OP post, A is a row vector, and B is a column vector. There's no way to concatenate both (without reshaping).
I have B as 3x1 and A as 1x2. I have to concatenate in that case. Is it possible?
thank you
You should transpose one vector and then concatenate it.

Sign in to comment.

singh
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]

Categories

Community Treasure Hunt

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

Start Hunting!