equation as an output

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 日

0 投票

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 日

0 投票

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

カテゴリ

ヘルプ センター および File ExchangeFunction Creation についてさらに検索

質問済み:

2021 年 10 月 2 日

回答済み:

2024 年 8 月 31 日

Community Treasure Hunt

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

Start Hunting!

Translated by