Cell Array referencing question

1 visualización (últimos 30 días)
Rick
Rick el 4 de Jul. de 2014
Comentada: the cyclist el 5 de Jul. de 2014
Hello,
Suppose I have
A = {1 2}
A =
[1] [2]
and
B = {[1 2]}
B =
[1x2 double]
I am wondering, why are these different. Matlab Says A is a 1x1 cell, and B is a 1x2 cell. I am confused about what matlab is doing when it sees this and why it is being classified as such.

Respuesta aceptada

the cyclist
the cyclist el 4 de Jul. de 2014
Your first statement is syntactically equivalent to
A = {[1],[2]};
This is specifying that A is a 1x2 cell array, where the first element is the length-1 vector [1], and the second element is [2].
In your second statement,
B = {[1 2]}
you have specified that B is a 1x1 cell array, where the contents of that one cell is the 1x2 vector [1 2].
Does that help?
  2 comentarios
Rick
Rick el 4 de Jul. de 2014
How is matlab reading this?
B = {3,4}; C = [{3},{4}];
They are equivalent. B has two cells in one cell array. C is two cell arrays each containing one cell. Why are they the same?
the cyclist
the cyclist el 5 de Jul. de 2014
Editada: the cyclist el 5 de Jul. de 2014
In your first example, B is the direct specification of a 1x2 cell array.
In your second example, {3} is a 1x1 cell array, {4} is a 1x1 cell array, and then C is the concatenation of those "horizontally", creating a 1x2 cell array.
Hence, the equivalence.

Iniciar sesión para comentar.

Más respuestas (1)

Ben11
Ben11 el 4 de Jul. de 2014
Editada: Ben11 el 4 de Jul. de 2014
Actually B contains a 1x2 double and it contains only 1 element (a 1x2 vector) whereas A contains 2 elements, i.e. 2 1x1 vectors if you wish

Categorías

Más información sobre Multidimensional Arrays en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by