equation as an output

4 views (last 30 days)
Clara Vivian
Clara Vivian on 2 Oct 2021
Answered: Walter Roberson on 31 Aug 2024
can you make an equation as an output of a function?
like, for example I want to make a function that has the output of f =@(x) a*x^2 %a is the number that we input

Answers (2)

Ayush Modi
Ayush Modi on 31 Aug 2024
Hi Clara,
Yes, you can create a function in MATLAB that returns another function (a function handle to be precise) as its output. Here is the example code to get you started:
a = 10 % Sample input
a = 10
bb = createQuadraticFunction(a) % bb stores the function handle
bb = function_handle with value:
@(x)a*x.^2
bb(10) % Checking the use of function handle
ans = 1000
function f = createQuadraticFunction(a)
% This function returns a quadratic function f(x) = a*x^2
f = @(x) a * x.^2;
end
Refer to the following MathWorks documentation for more information on function handles:

Walter Roberson
Walter Roberson on 31 Aug 2024
syms a x
expr = a*x^2
expr = 
try
f = matlabFunction(expr, 'vars', x)
catch ME
warning(ME.message)
end
Warning: Free variable 'a' must be included in 'Vars' value.
So you have the problem that a is needed but it is not input to the function.
On the other hand,
a = 9.8;
expr = a*x^2
expr = 
f = matlabFunction(expr, 'vars', x)
f = function_handle with value:
@(x)x.^2.*(4.9e+1./5.0)
This has the disadvantage that the value of a is expanded in-line
There is no way with the Symbolic Toolbox to generate a function referring to a captured variable by name

Categories

Find more on MATLAB 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!