Cell Array referencing question

조회 수: 6 (최근 30일)
Rick
Rick 2014년 7월 4일
댓글: the cyclist 2014년 7월 5일
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.

채택된 답변

the cyclist
the cyclist 2014년 7월 4일
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
Rick
Rick 2014년 7월 4일
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 2014년 7월 5일
편집: the cyclist 2014년 7월 5일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Ben11
Ben11 2014년 7월 4일
편집: Ben11 2014년 7월 4일
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

카테고리

Help CenterFile Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by