传递命令行以在Matlab中进行评估

时间:2014-08-21 21:21:01

标签: matlab function arguments eval

我有一个非常开放的功能,我在几个不同的应用程序中使用。我不想每次都改变它,而是想传递几个命令行作为函数的输入,以便使用eval函数进行评估。

因此,例如,我的论点是:

str={'a=32; 
  b=a+3*a^2+pi;
  c=sin(a)+cos(b)^2;'}

然后我可以用str作为参数来调用函数:

x=func(str) 

这些行将在函数

中进行评估

如何?

非常感谢!

1 个答案:

答案 0 :(得分:1)

我认为@Daniel是正确的,功能处理是前进的方向。根据您的示例,您就是这样做的:

function x = testfun( a, bfun, cfun )
   b = bfun(a);
   c = cfun(a, b);

   x = a + b + c;
end

然后你就这样称呼它:

x = testfun( 32, @(a)(a+3*a^2+pi), @(a,b)(sin(a)+cos(b)^2) );