Cell Array indexing and manipulating

1 次查看(过去 30 天)
The following code is entered in the command window:
A = {'Cal', 'Golden', 'Bears', [5 7], {[1 2 3 4]}};
Enter a single-line command the extract the number 3 from A
A{5}{1}(3)
Hello, I am confused about this problem. Why wouldn't the answer be A{5}{3} ??

采纳的回答

Geoff Hayes
Geoff Hayes 2014-8-2
Rick - try the code in steps. Start with
A{5}
The above returns the fifth element of the cell array A as
ans =
[1x4 double]
But what is the data type and size? Try
class(A{5})
ans =
cell
size(A{5})
ans =
1 1
So it is a 1x1 cell array. So trying to use
A{5}{3}
will result in the Index exceeds matrix dimensions error as 3 is not a valid index into the 1x1 cell array. Now try
A{5}{1}
and determine its type and dimension as
class(A{5}{1})
ans =
double
size(A{5}{1})
ans =
1 4
It is a 1x4 array of doubles, and so we can access the 3 as
A{5}{1}(3)
Note in the above how we use the curly braces {} for cell arrays, and brackets () for non-cell arrays.

更多回答(1 个)

Andrei Bobrov
Andrei Bobrov 2014-8-2
编辑:Andrei Bobrov 2014-8-2
A = {'Cal', 'Golden', 'Bears', [5 7], {1 2 3 4}};
A{5}{3}
or
>> A = {'Cal', 'Golden', 'Bears', [5 7], [1 2 3 4]};
>> A{5}(3)
ans =
3
>>
  1 个评论
Rick
Rick 2014-8-2
编辑:Rick 2014-8-2
You misunderstood the premise. I can't change what A is. I am supposed to extract 3 from A exactly the way it is. I was wondering why it is A{5}{1}(3)

请先登录,再进行评论。

类别

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