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

3 views (last 30 days)
Jim on 2 Aug 2016
Commented: Jim on 2 Aug 2016
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.

Community Treasure Hunt

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

Start Hunting!