equation as an output

1 次查看(过去 30 天)
Clara Vivian
Clara Vivian 2021-10-2
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

回答(2 个)

Ayush Modi
Ayush Modi 2024-8-31
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 2024-8-31
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

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by