Access cell array inside another cell array

15 visualizzazioni (ultimi 30 giorni)
Hello,
I have a 50x1 cell array. Each cell is a 2x1 array.
A = {2x1 cell;
2x1 cell;
2x1 cell
etc}
if I get into every cell I have cell = {a b}
I am trying to access each string in the 2x1 cell for all rows (a and b).
So if my array is called A this is the function I am using to extract the each column of the inside cell for all rows:
A = cellfun(@(x) x{:,1}{:,1}, A, 'UniformOutput',0)
B = cellfun(@(x) x{:,1}{:,2}, A, 'UniformOutput',0)
I am getting the following error: "Cell contents reference from a non-cell array object".
I was wondering if anyone can help me accessing those two columns of my multiindex cell array.
Thank you very much
  2 Commenti
Patrik Ek
Patrik Ek il 4 Feb 2014
Have you tried ordinary parenthesis second level?
Rocio
Rocio il 4 Feb 2014
Yes, and it returns only the second element on the first string

Accedi per commentare.

Risposta accettata

Kelly Kearney
Kelly Kearney il 4 Feb 2014
The anonymous function used in cellfun is applied to each element of A, so the input it expects in your case would be a 1 x 2 cell of strings, not the parent cell array of cell arrays:
a = cellfun(@(x) x{1}, A, 'uni', 0);
b = cellfun(@(x) x{2}, A, 'uni', 0);
  2 Commenti
Rocio
Rocio il 4 Feb 2014
It works for a but for b I get the error Index exceeds matrix dimensions
Kelly Kearney
Kelly Kearney il 4 Feb 2014
Either a) one of the internal cell arrays wasn't a 2 x 1 cell array, or b) you save that first output as A (as in your example above), thus replacing your original A.

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by