Info

この質問は閉じられています。 編集または回答するには再度開いてください。

General expression for inputting n number of arguments

3 ビュー (過去 30 日間)
J OBrien
J OBrien 2016 年 2 月 21 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
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

回答 (1 件)

Walter Roberson
Walter Roberson 2016 年 2 月 22 日
function r = call_f(f)
n = abs(nargin(f));
A = num2cell( rand(1,n) );
r = f(A{:});

この質問は閉じられています。

Community Treasure Hunt

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

Start Hunting!

Translated by