Info

La pregunta está cerrada. Vuélvala a abrir para editarla o responderla.

General expression for inputting n number of arguments

3 visualizaciones (últimos 30 días)
J OBrien
J OBrien el 21 de Feb. de 2016
Cerrada: MATLAB Answer Bot el 20 de Ag. de 2021
Hi
This is just an example of what I am basically asking..
I have an objective function eg., f=@(a,b,c,d) a+2*b+3*c+d;
with those unknown variables [a,b,c,d]
I created an array of random numbers eg., A = [1 5 3 2];
and now I calculate my objective value eg., f_obj=abs(f(A(1),A(2),A(3),A(4));
and this gives me a numerical output.
Now my question is, how do I code f_obj to receive any number of arguments? Say, I have 3 unknowns, or 5 unknowns. The objective function is random so I don't want to have to keep updating my code if this changes. Is there a way to code a general expression? Ive seen that 'varargin' is used but I'm not sure if this is the correct solution.
Thank you

Respuestas (1)

Walter Roberson
Walter Roberson el 22 de Feb. de 2016
function r = call_f(f)
n = abs(nargin(f));
A = num2cell( rand(1,n) );
r = f(A{:});

La pregunta está cerrada.

Community Treasure Hunt

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

Start Hunting!

Translated by