Индексирование / Доступ к вложенной структуре MATLAB - PullRequest
2 голосов
/ 27 марта 2019

Надеюсь, я не создаю дубликат, но пока не нашел правильного ответа для своей проблемы.

Допустим, у нас есть следующие структуры:

a(1).b = 1;
a(1).x.y = 2;

a(2).b = 3;
a(2).x.y = 4;

Когда я сейчас пытаюсь получить все значения b, я могу сделать:

>> a(:).b

ans = 1
ans = 3

Но как это сделать с помощью вложенной структуры .x.y?

>> a(:).x.y

Ожидается один вывод из выражения фигурной скобки или индексации точек, но было 2 результата.

Спасибо за вашу помощь ...!

1 Ответ

5 голосов
/ 27 марта 2019

Просто переберите индексы.

>> arrayfun(@(k) a(k).x.y, 1:numel(a))

ans =

     2     4

или

>> struct2array(cell2mat(extractfield(a,'x')))

ans =

     2     4
...