试图弄清楚我是否可以访问在我们的 Matlab 脚本中使用的函数对象编程技术。这类似于.NET 的 Func 类型或Python 的函数对象。Matlab 是否给函数提供一流的对象状态?
问问题
117 次
1 回答
4
Matlab 确实具有可以传递给其他函数的函数句柄。作为一个例子,函数fzero将找到您作为其第一个参数给出的函数的过零。函数句柄可以存储在变量、元胞数组或结构中。Matlab 也有匿名函数,类似于 Python 的 lambda 表达式。因此,Matlab 中的函数似乎具有所有被认为是一流的属性。
一些随机的例子:
>> sq = @(x) x^2 - 2
sq =
@(x)x^2-2
>> fzero(sq, 1)
ans =
1.4142
>> class(sq)
ans =
function_handle
>> functions = {@(x) 2 * x, @(y) 3 * y, @exp}
functions =
@(x)2*x @(y)3*y @exp
>> functions{2}(10)
ans =
30
>> functions{3}(1)
ans =
2.7183
于 2015-06-18T19:52:44.123 回答