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일

0 개 추천

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일

0 개 추천

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

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

태그

질문:

2014년 7월 4일

댓글:

2014년 7월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by