Convert the variables x1, x2,... in an anonymous function to x(1,:) ,x(2,:).....

For example: f = @(x1, x2, ... , x15) x1 .* x2 .* ... .* x15
I want get: f = @(x) x(1,:) .* x(2,:) .* ... .*x(15,:)

Answers (2)

x = randi([-5 5],2,10); % this is your data
xc = num2cell(xc,2);
out = f(xc{:});
f=@(x) prod(x)

4 Comments

Yes, but this is not a common method. If f is like: sin(x1)*x2/exp(x3)...
If your function is different then change it. t's not clear for me what you want
Thank you!
For example, I mean how to convert
f = @(x1,x2)sin(x1) .* exp(x2)
to
f = @(x)sin(x(1,:)) .* exp(x(2,:))
automatically in the program.

Sign in to comment.

Categories

Products

Asked:

on 28 Mar 2013

Community Treasure Hunt

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

Start Hunting!