MATLAB Answers


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


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


Matt J
on 28 Mar 2013

I think this should be

 xc = num2cell(xc,2);

Thank you Matt! Corrected.

Answer by Azzi Abdelmalek
on 28 Mar 2013

f=@(x) prod(x)


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

on 28 Mar 2013

Thank you!

For example, I mean how to convert

f = @(x1,x2)sin(x1) .* exp(x2)


f = @(x)sin(x(1,:)) .* exp(x(2,:))

automatically in the program.

You can't do conversion

Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!