如何根据Matlab中的另一个内联函数定义一个内联函数?

How to define an inline function according to another inline function in Matlab?

假设我有一个以这种方式创建的变量向量:

A = sym('A%d',[1 , 3]);

还有一个内联函数,它是 A 的函数:

f = inline(A(1)^2 + A(2)^3 - 10*A(3) , 'A');

现在,问题是如何定义另一个具有以下形式的函数,例如 gg = f*10 或依赖于 f.

的任何其他类型的函数

提前致谢

按照@Daniel 的建议,您应该使用anonymous functions。在 inline 的文档中,Mathworks 警告说这将在未来的版本中删除,并告诉您使用匿名函数。

匿名函数的语法很简单:

f =  @(A) A(1)^2 + A(2)^3 - 10*A(3)

@(A),你定义你想要一个输入变量,并将它命名为A。如果你有两个输入,AB,那么写 @(A,B)。但要注意:这些名称 AB 只是匿名函数中的内部名称。以下两个函数 100% 相同:

f1 = @(x) 10*x
f2 = @(A) 10*A

您可以像调用普通函数一样调用这些匿名函数,例如

f([1, 2, 3])
f(x)

如果你想创建一个函数g = 10*f,那么你定义这个函数为

g = @(A) 10*f(A)

这是一个小演示:

A = sym('A%d',[1 , 3]);
f =  @(x) x(1)^2 + x(2)^3 - 10*x(3)
g = @(x) 10*f(x)

g(A) 
ans = 
    10*A1^2 + 10*A2^3 - 100*A3