Info
此问题已关闭。 请重新打开它进行编辑或回答。
General expression for inputting n number of arguments
3 次查看(过去 30 天)
显示 更早的评论
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
0 个评论
回答(1 个)
Walter Roberson
2016-2-22
function r = call_f(f)
n = abs(nargin(f));
A = num2cell( rand(1,n) );
r = f(A{:});
0 个评论
此问题已关闭。
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!