【发布时间】:2015-04-07 00:36:28
【问题描述】:
我在 Octave / Matlab 中有一个这样的函数(真正的函数要复杂得多)
function result = foo (x, y, z)
result = x + y + z;
endfunction
调用函数的正常方式如下:
foo (1, 2, 3);
但我想将其应用于像这样打包在数组中的参数:
myStuff = [1, 2, 3];
apply (foo, myStuff);
或
foo (myStuff);
我无法在文档或 Google 上找到此类调用所需的语法。
【问题讨论】:
-
通常在 Matlab 中直接调用函数,因此没有原生的 apply 函数(Python 3 出于类似原因删除了 apply)。你为什么要找这个?您的目标是使用它来“矢量化”一个未以某种方式矢量化或您无权访问其源代码的函数吗?
-
我有带有几十个参数的函数(不是手写的;由 DSL 生成的代码),我想为它们编写测试代码;将参数测试集打包在数组中而不是生成几十个临时名称很方便。