MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

# 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,:)

## Products

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{:});
```

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)
```

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