Equivalent of [C{:}] for vertcat

2 visualizzazioni (ultimi 30 giorni)
Luca Amerio
Luca Amerio il 21 Dic 2016
Commentato: Matt J il 28 Dic 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

Risposta accettata

Matt J
Matt J il 21 Dic 2016
Modificato: Matt J il 21 Dic 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 Commento
Walter Roberson
Walter Roberson il 21 Dic 2016
Correct, there is no operator syntax for this.

Accedi per commentare.

Più risposte (3)

José-Luis
José-Luis il 21 Dic 2016
Modificato: José-Luis il 21 Dic 2016
EDIT
cell2mat(A')
  2 Commenti
Luca Amerio
Luca Amerio il 21 Dic 2016
Modificato: Luca Amerio il 21 Dic 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.

Accedi per commentare.


KSSV
KSSV il 21 Dic 2016
vertcat(A{:})
  1 Commento
Luca Amerio
Luca Amerio il 21 Dic 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..

Accedi per commentare.


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

Accedi per commentare.

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by