在Matlab中的匿名函数中编写输入参数

时间:2014-04-17 15:32:52

标签: matlab input anonymous-function

我有以下代码:

s(i+1)=NRK(Dt*f(tv(i+1),x)+s(i)-x,s(i));

其中NRK=NRK(function , numeric scalar)这是符号实现,f =符号函数,x是未知数的符号数组。

问题在于使用符号表达式可以解决问题,但这会在一个循环中进行,符号工具会以令人惊讶的速度放慢100倍的性能!但是,匿名函数可以完美地完成工作。

我的尝试如下:

h=@([arguments (i.e. a, b, c, ...])Dt*f(t(i+1),[arguments (i.e. a, b, c,...])+s(i)-[a b c ...];
s(i+1)=NRK(@h,s(i));

我怎样才能写出这些论点?可能吗?

1 个答案:

答案 0 :(得分:0)

您可以在括号中指定它们:

h = @( a, b, c ) Dt*f( t(ii+1), a, b, c ) + s(ii);

然后致电

s(ii+1) = NRK( h, s(ii) );

一些评论:
- 向@提供h时,您无需额外编写NRK,因为h已被定义为函数句柄。
- 最好not to use i as a variable name in Matlab