Скажем, у меня есть следующее в MATLAB:
a(1).b.c = 4;
a(2).b.c = 5;
a(3).b.c = 7;
....
Я хотел бы собирать значения [4 5 7 ...]
в одном массиве без циклов и в векторном виде.
Я пробовал:
>> a(:).b.c
# Error: Scalar index required for this type of multi-level indexing.
и
>> a.b.c
# Error: Dot name reference on non-scalar structure.
но они не сработали. Лучшее, что я мог придумать, было:
arrayfun(@(x) x.b.c, a);
но насколько я понимаю arrayfun
не векторизован, или это?