В соответствии с этим, для этой цели существует семейство функций *fun
(например, cellfun
). Это другие вопросы по use и performance этих функций.
Однако, если вы строите f
как функцию, которая строит массив ячеек как
f = @(x) {sin(x), cos(x), x+4};
, то вы можете вызвать функцию более естественно: f([1,2,3])
, например. Этот метод также позволяет избежать необходимости в параде опций (, false
), необходимых для cellfun
для нескалярного аргумента.
Вы также можете использовать обычные двойные массивы, но тогда вам нужно быть осторожными с формой ввода для конкатенации: @(x) [sin(x), cos(x), x+4]
против @(x) [sin(x); cos(x); x+4]
.
Nice =) +1! Я дал некоторые результаты бенчмаркинга, которые показывают, что ваш подход действительно быстрый (и что петли не так уж медленны)! знак равно –