access cell array inside another cell array

126 Ansichten (letzte 30 Tage)
Steffen
Steffen am 29 Okt. 2014
Kommentiert: Walter Roberson am 3 Feb. 2023
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 Kommentar
Sean de Wolski
Sean de Wolski am 29 Okt. 2014
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.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Titus Edelhofer
Titus Edelhofer am 29 Okt. 2014
Hi Steffen,
nested indexing should work:
A = cell(1,94);
A{4} = cell(600, 27);
b = A{4}{600,27}
Titus
  4 Kommentare
Steffen
Steffen am 29 Okt. 2014
Ah, I was blind and always tried
A{4}[600,27];
It works now! Thanks a lot!
Hina Iqbal
Hina Iqbal am 22 Mär. 2015
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

N/A
N/A am 4 Mai 2017
To access 2nd row column three of 4th cell try this code
temp = A{4}(2,3)
  2 Kommentare
monkeyquant
monkeyquant am 3 Feb. 2023
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
Walter Roberson am 3 Feb. 2023
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,:)
ans = 1×1 cell array
{[0]}
%helper function
SelectRow = @(object, row) object(row,:);
SelectRow(A(:,3), 2)
ans = 1×1 cell array
{[0]}
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.

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by