Equivalent of [C{:}] for vertcat

1 view (last 30 days)
Luca Amerio
Luca Amerio on 21 Dec 2016
Commented: Matt J on 28 Dec 2016
To concatenate horizontally the content of a cell array we can use the very practice syntax [C{:}]. For example:
A = {(1:3) (4:7)};
B = [A{:}]
B =
1 2 3 4 5 6 7
Is there a way to obtain the same results in the vertical direction (except vertcat of course)
A = {(1:3)' (4:7)'};
B = ?
B =
1
2
3
4
5
6
7

Accepted Answer

Matt J
Matt J on 21 Dec 2016
Edited: Matt J on 21 Dec 2016
Well, it's not vertcat...
B=cat(1,A{:})
But no, I don't think there's a way purely with operator syntax.
  1 Comment
Walter Roberson
Walter Roberson on 21 Dec 2016
Correct, there is no operator syntax for this.

Sign in to comment.

More Answers (3)

José-Luis
José-Luis on 21 Dec 2016
Edited: José-Luis on 21 Dec 2016
EDIT
cell2mat(A')
  2 Comments
Luca Amerio
Luca Amerio on 21 Dec 2016
Edited: Luca Amerio on 21 Dec 2016
This won't work if, as I did on purpose in the example, the vectors inside C are not all the same length.
Moreover, even if the are, the result is not the wanted one.

Sign in to comment.


KSSV
KSSV on 21 Dec 2016
vertcat(A{:})
  1 Comment
Luca Amerio
Luca Amerio on 21 Dec 2016
"except vertcat of course"
Thank you, but as [C{:}] is an equivalent for horzcat(C{:}), I was asking myself if there was such an equivalent for vertcat too..

Sign in to comment.


Greg
Greg on 28 Dec 2016
Do exactly the same thing, then transpose B...
A = {(1:3) (4:7)}; B = [A{:}]'
  1 Comment
Matt J
Matt J on 28 Dec 2016
This only works when the elements of A are row vectors, not column vectors, as in the OP's example.

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!