How do you create a composite function in matlab?
58 views (last 30 days)
Show older comments
Buttercup12
on 28 Feb 2021
Commented: Walter Roberson
on 2 May 2023
If I have two functions, like
function a=func1(x)
and
function b=func2(q,p)
as examples. Is it possible to combine them to create a composite function like func1(func2(q)) = func1∘func2(q), and if so how do you do that?
3 Comments
Torsten
on 2 May 2023
syms x
f(x) = ...;
g(x) = ...;
h1(x) = f(g(x))
h2(x) = g(f(x))
Walter Roberson
on 2 May 2023
Note: MATLAB does not have any explicit function-composition operator . For example Maple would allow you to write func1@func2(q) but MATLAB does not have any support for such an operator.
MATLAB does allow you to define
func1_o_func2 = @(x) func1(func2(x))
fplot(func1_o_func2, [-5 5]) %for example
Accepted Answer
Steven Lord
on 28 Feb 2021
f = @sin;
g = @cos;
% define it two different ways
fg = @(x) f(g(x));
h = @(x) sin(cos(x));
% Compare the two approaches
x = 0:0.1:2*pi;
max(abs(fg(x)-h(x)))
Or you could write a function file.
function y = myfun3(x)
y = func1(func2(x, 3)); % fixing p = 3
end
0 Comments
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!