How to apply a cell array of function handles to a cell array of arguments

4 views (last 30 days)
I have an MxN cell array fha of type conversion function handles (@double, @char, etc) that I'd like to apply element-by-element to an MxN cell array of strings x, but am struggling with the correct syntax. I've tried:
cellfun(@(s,t) s(t), fha, x, 'uni', 0)
which returns error in @(s,t)s(t) -- index exceeds matrix dimensions, and also:
cellfun(@(s,t) (s,t), fha, x, 'uni', 0)
but that's also flagged as incorrect -- possible unbalanced (, {, or [. Anyone got a clue?

Answers (1)

Thorsten on 2 Aug 2016
Use nested cellfun calls
X = cellfun(@(fha_i) cellfun(fha_i, C, 'Uni', false), fha, 'Uni', false)
  1 Comment
Jim on 2 Aug 2016
Sorry, that returns an MxN cell array of MxN cell arrays (interesting, though). But it's all good -- my 1st try worked once I gave it the right fha argument.

Sign in to comment.


Find more on Matrices and Arrays in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!