【问题标题】:All Permutations of Multivariable Functions in Octave/MatlabOctave/Matlab中多变量函数的所有排列
【发布时间】:2015-06-24 13:47:57
【问题描述】:

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

f(x,y) with x = [1 2]; y=[1 2];  

我想做一个矩阵

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

是否可以不使用愚蠢的循环?
理想情况下,操作类似于f([1:2],[1:2]);这不起作用。

如果你知道Haskell,我正在寻找与

相同的操作
[f(x,y)|x<-[1,2],y<-[1,2]].

【问题讨论】:

    标签: matlab function octave permutation


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多