How to pass multiple arguments to a function stored in a vector?
26 views (last 30 days)
Show older comments
Hello guys;
I'm making a program for my college assignment and I got stuck in a situation. So, I have a vector X storing x1,x2,x3....xn (i.e. X = [x1,x2,x3,...xn] ) and a function f(x1,x2,x3,...xn). e.g. let f(x1,x2) = sin(x1)+cos(x2) and X = [1,2]. So I want to write a code which accepts the values stored in X (i.e. x1 and x2 in this given example) and use them for function arguments (i.e. f(x1,x2) = f(1,2) = sin(1)+cos(2)).
2 Comments
KALYAN ACHARJYA
on 26 Nov 2020
X=[......]
Pass the entire vector
function out_put_arguments=fun1(X)
.........
end
If I don't understand the question, pleas can you provide more with the sample example.
Accepted Answer
Stephen23
on 27 Nov 2020
Edited: Stephen23
on 27 Nov 2020
The solution is to use a cell array for the input values, for example:
C = cell(1,N);
for k = 1:N % do NOT use i
str = input(sprintf('Enter variable x%d: ',k),'s');
C{k} = str2double(str);
end
and then when calling any function, use a comma-separated list, e.g. with the first function:
F{1}(C{:})
You could even call all functions using cellfun:
cellfun(@(f)f(C{:}),F)
Read more about comma-separated lists:
2 Comments
More Answers (0)
See Also
Categories
Find more on Polynomials in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!