Octave / Matlab中多变量函数的所有排列

时间:2015-06-24 13:47:57

标签: matlab function octave permutation

我正在尝试从现有运算符创建一个函数所有可能排列的矩阵 例如,如果有一个带有两个变量的函数

[f(1,1),f(1,2);f(2,1),f(2,2)]. 

我想制作一个矩阵

f([1:2],[1:2])

没有使用愚蠢的循环会不可能? 理想情况下,操作类似于[f(x,y)|x<-[1,2],y<-[1,2]]. ;这不起作用。

如果您了解Haskell,我正在寻找与

相同的操作
def create(self, cr, uid, vals, context=None):
     return {'value': {'your_field_name': vals }}

1 个答案:

答案 0 :(得分:2)

您可以使用ndgrid,然后arrayfun。但后者或多或少与循环相同:

[xx, yy] = ndgrid(x, y);
result = arrayfun(f, xx, yy)

要避免循环或arrayfun,您需要定义函数f vectorized