Concatenate along singleton dimension?

7 views (last 30 days)
Hi,
Is there a single-step way to concatenate two vectors along the singleton dimension? For example, a 10x1 vector and a 1x25 vector. In some of my scripts the dimensions seem to be unpredictable for reasons I don't feel like digging into, and I have to use reshape every time I want to concatenate.
Thanks.
  2 Comments
David McVea
David McVea on 14 Jul 2016
As clarified below:
Thanks - I wasn't clear in my question.
I don't know whether the dimension would be 10x1 and 25x1, or 1x10 and 25x1, or any other combination.
All I know is they will both have a singleton dimension.
Stephen23
Stephen23 on 14 Jul 2016
In your mind you might know what you want, but our crsytal balls are a little foggy today. Please give us some examples with both input and output vectors so that we can test our code with.

Sign in to comment.

Accepted Answer

Azzi Abdelmalek
Azzi Abdelmalek on 14 Jul 2016
A=rand(5,1)
B=rand(1,4)
out=[A(:);B(:)]
  4 Comments
Guillaume
Guillaume on 14 Jul 2016
As far as I understand, Azzi's answer fills the brief. It reshapes both vectors into column vectors and concatenate them vertically. It therefore does not matter which dimension is the singleton one.
Of course, having code that generates vectors of unpredictable shape is not a good design, so I would fix that first. It could simply be forcing the output to be a column vector with:
out = out(:);
David McVea
David McVea on 14 Jul 2016
Yes, I am sorry. Azzi's answer is essentially what I am looking for. And it does bother me that the shape is unpredictable, but I have spend some time trying to track down the source but haven't figured it out yet. Thanks.

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!