由" inline"定义的函数在MATLAB中使用向量输入

时间:2017-12-14 04:02:18

标签: matlab

使用

定义一个函数
f = inline('x+P1*P2-P3',3);

可以计算f(1,2,3,4)f(0,1,2,1)

我应该如何编写函数f,以便我可以使用1:4[2,3,6,4]等向量作为输入?

2 个答案:

答案 0 :(得分:5)

发布的代码可以使用,因为弃用的inline

允许极其严格的结构
  

inline(expr,n)其中n是标量,构造一个内联函数,其输入参数为xP1P2,....

注意:" inline将在以后的版本中删除。请改用Anonymous Functions。"

注意到该注释,您可以通过执行以下操作复制已发布代码的行为:

f = @(x,P1,P2,P3) x+P1*P2-P3;

您还可以通过拥有x并将其编入索引在匿名函数的正文中来获得所需的行为:

f = @(x) x(1)+x(2)*x(3)-x(4);

答案 1 :(得分:0)

我刚刚从这两个答案中学到了:

关键字为Comma-Separated Lists。人们可以简单地使用

f = inline('x+P1*P2-P3',3);
a = [1,2,3,4]; % or a = 1:4;
c = num2cell(a); 
f(c{:})