access cell array inside another cell array
126 次查看(过去 30 天)
显示 更早的评论
Hi,
a short question, I just can't get it running:
I have a 1x94 cell array called A with 94 600x27 cell array inside. Now, as an example, I want to access the following value: 2nd row, 3rd column, 4th cell array. How can I do that?
I want to avoid a "temporary variable" as in:
temp=A{4} value=temp(2,3)
Many thanks, Steffen
1 个评论
Sean de Wolski
2014-10-29
Why do you have this data structure? What is the data and what are you trying to do? There might be a more efficient way.
采纳的回答
Titus Edelhofer
2014-10-29
Hi Steffen,
nested indexing should work:
A = cell(1,94);
A{4} = cell(600, 27);
b = A{4}{600,27}
Titus
4 个评论
Hina Iqbal
2015-3-22
Hi Titus Edelhofer! i also have to access the data as it is but my problem is that data in each cell array vary.. e.g;
[21x1 double]
[32x1 double]
[6x1 double]
then please tell me how to access data from this sort of data where the main cell array which contains this type of data is cell.
更多回答(1 个)
N/A
2017-5-4
To access 2nd row column three of 4th cell try this code
temp = A{4}(2,3)
2 个评论
monkeyquant
2023-2-3
How about this case?
>> A = {3, 9, 'a';
'B', [2,4], 0};
>> A(:, 3)
% which spits out
ans =
2×1 cell array
{'a'}
{[0]}
Now I want to access entire row or columns values from this newly extractracted cell. I tried various approach but cause Error: Invalid array indexing. A couple of examples are below:
>> A(:, 3){:, 1}
>> A(:, 3){2, 1}
Walter Roberson
2023-2-3
There is no direct way to do that. You need to either use a temporary variable or a helper function
A = {3, 9, 'a';
'B', [2,4], 0};
%temporary variable
A3 = A(:,3);
A3(2,:)
%helper function
SelectRow = @(object, row) object(row,:);
SelectRow(A(:,3), 2)
The helper function only has to be created once for each context, not for every different place you want to do this kind of indexing.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Cell Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!