I want to apply a function to each element of a cell array -- so I have cellfun
for that. However, the function takes two extra arguments (a string and a vector), which I want to keep constant for all the elements of the cell array; i.e. I'd like to do something like:
cellfun(@myfun, cellarray, const1, const2)
meaning:
for i = 1:numel(cellarray),
myfun(cellarray{i}, const1, const2);
end
Is there some way to do that without creating intermediate cell arrays containing numel(cellarray)
copies of const1
and const2
?
Another trick is to use ARRAYFUN on the indices:
if the return values of
myfun
are not scalars, you might want to set the'UniformOutput',false
option.You can do this using an anonymous function that calls
myfun
with the two additional arguments: