Convert array to argument list?

Here's my situation:
I have a function (A) that receives another function name (B) and an array that contains all of the arguments to that function. I need A to call B with the arguments that B needs, but those arguments are in the array. B cannot be changed, and depending on the particular B chosen, the number of arguments vary. What is the easiest way to address this situation. I would've thought there would be some command to convert an array to an argument list, but I can't find one. I think I could construct the argument list on the fly, but I'm not sure how to do that, either.
Thanks for your help

 Accepted Answer

B = [77 34 56]
B = mat2cell(B,1,ones(1,numel(B)))
func(B{:})
If your B has a different shape, you will have to adjust this...

3 Comments

Thanks. I didn't know a cell array would be interpreted as individual arguments like that.
It turns out num2cell places each array entry into a separate cell without the extra arguments needed by mat2cell.
True that! I just gave you the general idea, in case you needed to break the array up in a more complicated way as you didn't specify what the array looked like exactly.

Sign in to comment.

More Answers (0)

Asked:

on 26 May 2011

Community Treasure Hunt

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

Start Hunting!