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

时间:2016-02-19 12:36:14

标签: matlab inline

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

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

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

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

现在,问题是如何定义另一个具有以下形式的g函数: g = f*10或依赖f的任何其他类型的函数。

提前致谢

1 个答案:

答案 0 :(得分:1)

根据@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