У меня есть следующий массив структур в октаве:
p=[struct('a',[1,2],'b',[3,4,5]),struct('a',[7,8,9],'b',[10,11])]
Теперь я хочу применить функцию к ним равномерно:
arrayfun(@(x) x.b(1:2),p)
Но поскольку октава не делает вывод, что выражение b(1:2)
дает одинаковые результаты, я получаю:
error: arrayfun: all values must be scalars when UniformOutput = true
Теперь я нашел следующий обходной путь:
reshape(cell2mat(arrayfun(@(x) x.b(1:2),p,"UniformOutput",false)),2,2)'
Есть ли более простой способ сделать это?