Cell Array referencing question

1 visualizzazione (ultimi 30 giorni)
Rick
Rick il 4 Lug 2014
Commentato: the cyclist il 5 Lug 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.

Risposta accettata

the cyclist
the cyclist il 4 Lug 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 Commenti
Rick
Rick il 4 Lug 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 il 5 Lug 2014
Modificato: the cyclist il 5 Lug 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.

Accedi per commentare.

Più risposte (1)

Ben11
Ben11 il 4 Lug 2014
Modificato: Ben11 il 4 Lug 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

Categorie

Scopri di più su Multidimensional Arrays in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by