2

试图弄清楚我是否可以访问在我们的 Matlab 脚本中使用的函数对象编程技术。这类似于.NET 的 Func 类型Python 的函数对象。Matlab 是否给函数提供一流的对象状态?

4

1 回答 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 回答