2014-01-24 3 views
1

Я прочитал документацию для доступа массив ячеек вCell индексирование в MATLAB

http://www.mathworks.com/help/matlab/matlab_prog/access-data-in-a-cell-array.html

кажется довольно простой; однако, похоже, я потерял доступ к 1X1 struct ниже.

У меня есть объект (first_elem) который имеет класс cell.

Я хочу видеть содержимое структуры, как я только что загрузил в набор данных MATLAB для анализа.

>> first_elem 

first_elem = 

    [1x1 struct] 

>> class(first_elem) 

ans = 

cell 

>> first_elem(1) 

ans = 

    [1x1 struct] 

>> class(first_elem(1)) 

ans = 

cell 

Однако, когда я индексировать для первого элемента с (1), вернусь другой объект cell вместо 1x1 struct, показанного на [1x1 struct].

Я что-то упустил?

Дополнительный контекст:

Исходный файл загружен я содержал несколько наборов данных и выглядел как

>> display(train_small) 

train_small = 

    train: {[1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct] [1x1 struct]} 

после загрузки.

Я попытался посмотреть на содержимое первого набора данных с

first_elem = train_small.train(1) 
+2

Это обычно не делают смысл ставить структуры внутри ячеек. Если все структуры имеют одинаковые имена полей, используйте вместо этого массив struct. –

ответ

2

first_elem(1) возвращает ячейку, содержащую первый элемент только

first_elem{1} возвращает первый элемент

Смежные вопросы