MATLAB Answers

chen

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

Asked by chen
on 28 Mar 2013

For example: f = @(x1, x2, ... , x15) x1 .* x2 .* ... .* x15

I want get: f = @(x) x(1,:) .* x(2,:) .* ... .*x(15,:)

  0 Comments

2 Answers

Answer by Andrei Bobrov
on 28 Mar 2013
Edited by Andrei Bobrov
on 28 Mar 2013
x = randi([-5 5],2,10); % this is your data
xc = num2cell(xc,2);
out = f(xc{:});

  2 Comments

Matt J
on 28 Mar 2013

I think this should be

 xc = num2cell(xc,2);
Andrei Bobrov
on 28 Mar 2013

Thank you Matt! Corrected.


Answer by Azzi Abdelmalek
on 28 Mar 2013
f=@(x) prod(x)

  4 Comments

Azzi Abdelmalek
on 28 Mar 2013

If your function is different then change it. t's not clear for me what you want

chen
on 28 Mar 2013

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.

Azzi Abdelmalek
on 28 Mar 2013

You can't do conversion


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today