Если ваша функция обрабатывает массивы (т.е. b{j}(a)
возвращает массив Nx1 в вашем примере), вы можете использовать CELLFUN и CELL2MAT для генерации выходного массива:
c = cell2mat( cellfun( @(bFun)bFun(a),b,'UniformOutput',false) );
Если ваша функция обрабатывает только отдельные строки (т. Е. b{j}
необходимо применять к каждой строке a
по отдельности, вы можете добавить ARRAYFUN в микс (ухудшается читаемость)хотя немного, в основном вы применяете каждый элемент b
через cellfun к каждой строке a
через arrayfun):
c = cell2mat(...
cellfun( @(bFun)arrayfun(...
@(row)bFun(a(row,:)),1:size(a,1)),...
b,'UniformOutput',false) ...
);