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

 Réponse acceptée

Matt Fig
Matt Fig le 26 Mai 2011

7 votes

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 commentaires

Jack
Jack le 26 Mai 2011
Thanks. I didn't know a cell array would be interpreted as individual arguments like that.
Jack
Jack le 26 Mai 2011
It turns out num2cell places each array entry into a separate cell without the extra arguments needed by mat2cell.
Matt Fig
Matt Fig le 26 Mai 2011
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.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by